上一节已经讲了,绘制流程为测量摆放绘制
进入看下测量规则 如果是mactch就是exactly 如果是warp就是at_most 其他的是确定的值,exactlyDecorview结论:
MATCH_PARENT:精确模式,窗口大小
WARP_CONTENT:最大模式,最大为窗口大小
固定大小:精确模式,大小为LayoutParams
由于 Decorview集成了FramLayout的 onmreure 进入结论
调用流程
viewgroup->Measure->onMeasure->setMeasuredDimension->setMeasuredDimensionRaw(保存自己宽高)
view ->onMeasure->
view onMeasure getDefaultSize结论:如果你写自己定义的view,如果不重写onmeasure,那么你写at_most或者写exactily,结果其大小都是为父容器的宽高。
viewgroup layout 来确定自己的位置,4个点的位置-》onlayout 进行子view的摆放
view layout来确定自己的位置,4个点的摆放
viewgroup
绘制背景,drawBackground(canvas)
绘制自己onDraw(canvas)
绘制子view dispatchdraw(canvas)
绘制前景滚动条,ondrawforeground(canvas)
view
绘制背景,drawBackground(canvas)
绘制自己onDraw(canvas)
绘制前景滚动条,ondrawforeground(canvas)
网友评论