一.view树的绘制流程
measure-->layout-->draw
measure
二.measure
1.ViewGroup.LayoutParams 指定视图的高度和宽度的参数
image.png
2.MeasureSpec 32位的int值 ,最高2位表示模式 SpecMode 占位符(测量模式) ,后30位表示测量规格的大小
Measure
onMeasure 重写进行测量
setMeasuredDimension 最终用来设置测量后的宽高
三.layout 是个空实现

四.draw
2个比较容易混淆的方法
- invalidate() 大小没有变化 时,不会调用layout方法
- requsetLayout() 布局发生变化时 当发生 方向 ,大小变化时‘’
自定义视图时,希望重新绘制大小,会手动调用该方法,触发onMeasure onLayout方法,不会调用draw方法
网友评论