(自己整理的比较乱,但这么说没问题的!)
自定义view是干嘛的呢?
当我们不满足于Android提供的原生控件和布局时,就应该考虑到自定义view。
自定义View分为两大块。
自定义控件 和 自定义容器
自定义View必须重写两个构造方法
第一个是一个参数的上下文,用于在java代码中new对象使用
第二个是两个参数的一个上下文,一个AttributSet。 主要用于在xml中定义使用。
OnMesure 计算出控件的大小。
onLayout 计算出控件的位置。
onDraw 画出样式
ViewGroup\View的绘制流程:
第一步:调用ViewGroup中的onMeasure方法。
在方法中调用了measureChild方法,执行了所有子控件的onMesure方法测绘出所有的子控件的大小。
调用setMeasureDimension方法 设置测绘后的大小。
第二步:调用ViewGroup中的onLayout方法。
在方法调用getChildCount方法 获取到子条目数量。
用for循环遍历出每一个子条目的对象。 通过对象.layout方法 给子控件设置摆放位置。
第三步:首先调用ViewGroup的disPatchDraw方法绘制ViewGroup。然后调用View中的onDraw方 进行绘制。
方法详解:
onMeasure:用于设置自定义view的大小
setMeasuredDimension();
方法内部需要调用MeasureSpec类 可以