自定义控件---测量(View测量)

自定义控件---测量(View测量)_第1张图片

1 直接继承View的自定义控件需要重写onMeasure方法并且设置wrap_content时的自身大小,否者在布局中使用wrap_content就相当于使用math_parent,具体原因上面已经说明。
2  在自定义View时可以通过重写onMeasure方法自己设置设置View测量大小,抛弃了父容器通过measure方法传进来建议测量值MeasureSpec,直接通过setMeasuredDimension(width, height)设置

3 测量模式为 UNSPECIFIED 时, 才会选用 getSuggestedMinimumWidth() 测量的值

伪代码

   自定义控件---测量(View测量)_第2张图片

4: 源码跟踪 

   4.1 首先View的measure函数

      自定义控件---测量(View测量)_第3张图片

自定义控件---测量(View测量)_第4张图片

自定义控件---测量(View测量)_第5张图片

自定义控件---测量(View测量)_第6张图片

自定义控件---测量(View测量)_第7张图片

自定义控件---测量(View测量)_第8张图片

 

你可能感兴趣的:(android核心,android)