UI绘制流程

2019-08-28  本文已影响0人  ShaMeless_2190

上一节已经讲了,绘制流程为测量摆放绘制

进入看下测量规则 如果是mactch就是exactly 如果是warp就是at_most 其他的是确定的值,exactly

Decorview结论:

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)

上一篇 下一篇

猜你喜欢

热点阅读