理解Android自定义View
本文于 2926 天之前发表,文中内容可能已经过时。
面对Android机型碎片化系统自带的控件往往无法满足开发的需求,学习掌握自定义View的实现过程与原理,提高自身开发水平与增加了对android中view模块的理解。
几个重要概念介绍
- 坐标系与View的位置模型概述
屏幕的左上角为原点,沿上屏幕边线为X轴,沿左屏幕边线为Y轴
View在坐标系的位置产生了四个具体距离值,即left,right,top,bottom - ViewGroup与View概述
ViewGroup继承自View,View是构成基本布局的用户界面组件,它在屏幕中占据一块矩形区域并负责绘制与事件处理。
ViewGroup是容器,它的中间可以存放View并控制内部View的摆放。
View是控件,可以创建自定义控件或者系统提供的控件进行页面布局。 - 测量模式概述
3中测量模式:
EXACTLY:表示设置了精确的值,一般当childView设置其宽、高为精确值、match_parent时,ViewGroup会将其设置为EXACTLY;
AT_MOST:表示子布局被限制在一个最大值内,一般当childView设置其宽、高为wrap_content时,ViewGroup会将其设置为AT_MOST;
UNSPECIFIED:表示子布局想要多大就多大,一般出现在AadapterView的item的heightMode中、ScrollView的childView的heightMode中;此种模式比较少见。
3个重要方法onMeasure().onLayout(),onDraw()
onMeasure()方法用来测量子视图及其所有子项的大小
onLayout()方法当确定View大小时,根据top,left,bottom,right四个值摆放控件位置
onDraw()方法使用画笔绘制视图,呈现其内容