

===============ui绘制

测量:

布局:

绘制

总结
测量:
自定义viewgroup onMeasure(测量子控件宽高) --》setMeasuredDimension --》setMeasuredDimensionRaw(保存自己宽高)
自定义view onMeasure( --》setMeasuredDimension --》setMeasuredDimensionRaw(保存自己宽高)
布局:
自定义viewgroup 调用onlayout( 负责 确定 子view的位置)
自定义view 调用 layout(确定自定的位置
绘制:
自定义viewgroup
绘制背景
绘制自己
绘制子view
绘制前景
自定义view
绘制背景
绘制自己
绘制前景
onMeasure()---?onLayout(容器)--.onDraw(可选)
网友评论