Android 自定义view第一弹——关于自定义View

本文详细介绍了自定义View的概念、原因及实现方式。包括View与ViewGroup的区别,自定义属性声明,测量、布局、绘画方法等内容,并探讨了组合控件、继承控件与自绘控件的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 什么是自定义view

1 首先来看一张图

这里写图片描述
这张图就是 我们Activity中ui的层级关系 从上图就可以知道,我们平时使用的 setContentView() 这个方法就是用来设置 contentview 。

2 我们来看看第二种图

这里写图片描述
从上面的一张图中,我们可以看出 android 的 UI 控件主要有两种:view 和 viewgroup。那么像我们经常使用的 Button,TextView,ImageView 都属于 view 的范畴!FrameLayout,LinearLayout等都属于 viewgroup 的范畴!

3 什么是自定义Veiw

自定义view就是继承 View 或者继承ViewGroup 又或者继承已有的控件比如 button textView 等 在这些上面进行拓展。

二 为啥要定义view

1 特定的显示风格

系统提供的控件或者没有提供的控件 达不到我们app的统一显示风格,需要我们自定义view实现。

2 处理特有的用户交互

我们需要自定义View实现 特殊的操作交互。比如 移动 删除 变色等。

3 优化我们的布局。

比如在ListView中可以通过自定义view实现复杂的自定义布局减少渲染的次数。

4 封装

有些功能和显示效果 ,在大多数app上都可以复用 比如一个开关按钮 ,我们将 自定义view 封装起来 就可以随时 复用。

三 如何自定义View

1 自定义属性的声明与获取。

2 测量方法 onMeasure。

3 布局方法 onLayout。(只有在继承ViewGroup时,才重写)

4 绘画方法 onDraw。

5 触摸方法 onTouchEvent。(处理用户交互)

6 触摸拦截方法 onInterceptTouchEvent(继承viewGroup时处理交互拦截事件)

7 状态的恢复 与保存。

四 实现自定义veiw的三种方式。

1 组合控件

组合控件,顾名思义就是将一些小的控件组合起来形成一个新的控件,这些小的控件多是系统自带的控件。比如很多应用中普遍使用的标题栏控件,其实用的就是组合控件。

2 继承控件

就是继承已有的控件,创建新控件,保留继承的父控件的特性,并且还可以引入新特性。比如自定义 带有清空功能的EditText 列表可以横向滑动删除的listView 。

3 自绘控件

自绘控件的内容都是自己绘制出来的,在View的onDraw方法中完成绘制。比如仿 ios7的滑动开关 这里写图片描述
仿 摩托车的仪表盘 这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值