1.自定义view如何分类
分为两类:自定义view或者自定义viewGroup
自定义view:在没有现成的view的情况下,需要自己实现的时候,就使用自定义view,一般继承与view,SurfaceView或者其他的view的情况,如TextView,Imageview等。主要实现onMeasure ,onDraw
自定义viewGroup:是利用现有的组件 根据特定的布局方式组成新的组件,大多继承与ViewGroup或者各种Layout.必须实现onMeasure,OnLayout
2.自定义view的绘制流
当存在子view和父view(viewGroup)时,view的生命周期如何呢?
后期把相关的log贴入
3.view的层次结构
view的measure:每个view的大小,除了和自己有关还有其父亲,其孩子相关
4. MeasureSpec是什么?
其定义如下:
MeasureSpec是view的内部类,是32位进制,高2位表示的为mode.低30位表示为size,MODE_SHIFT = 30,表示移位
三种mode为
UNSPECIFIED :不对view的大小做限制 EXACTLY :确切的大小,如200dp AT_MOST :最大不可以超过,如MATCH_PARENT,最大不超过父亲
LayoutParams:
.xml中定义如下:
LayoutParams如何转换成 MeasureSpec,或者dp?
通过调用getChildMeasureSpec方法来转换
借用***图来学原理