Android 自定义view第一弹——关于自定义View
2017-01-16 10:26
197 查看
一 什么是自定义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的滑动开关仿 摩托车的仪表盘
相关文章推荐
- 关于android自定义view的方法
- 关于Android自定义view 你所需要知道的基本函数
- 关于android自定义view的一点话
- 关于android自定义切割view并在每个区域设置点击事件
- Android填坑之旅(第十四篇)关于软键盘弹出未及时隐藏导致自定义View的onMeasure方法测量错误引发的血案
- 关于android自定义view的要注意的两个问题
- Android -- 自定义View小Demo,关于Path类的使用(一)
- Android自定义View-关于Graphics的解释(一)
- 关于Android自定义view的简单了解
- Android 关于自定义View小知识
- 关于Android自定义View中的onTouchEvent(MotionEvent event)事件监听
- Android自定义View(一)关于super、this和构造方法
- 关于android开发自定义view
- 关于这一周学习Android自定义View的经验总结
- 关于android自定义View时报error: No resource identifier found for attribute ‘XXX’ in package ‘
- 关于Android自定义view 你所需要知道的基本函数
- android:关于自定义不能滑动的ViewPager后在使用View加载其所在的的布局时报错:Error inflating class view.NoscrollViewPager
- Android杂谈(8)关于自定义View的一些实践+遮罩理解
- 关于Android自定义view所需要知道的基本函数
- 关于android自定义View时使用paint.setXfermode注意