View的绘制流程

View的绘制流程

Posted by pxf on March 16, 2018

View的绘制流程

View的绘制流程:OnMeasure()——>OnLayout()——>OnDraw()

各步骤的主要工作:

OnMeasure():

    测量视图大小。从顶层父View到子View递归调用measure方法,measure方法又回调OnMeasure。

OnLayout():

    确定View位置,进行页面布局。从顶层父View向子View的递归调用view.layout方法的过程,即父View根据上一步measure子View所得到的布局大小和布局参数,将子View放在合适的位置上。

OnDraw():

    绘制视图:ViewRoot创建一个Canvas对象,然后调用OnDraw()。六个步骤:①、绘制视图的背景;②、保存画布的图层(Layer);③、绘制View的内容;④、绘制View子视图,如果没有就不用;⑤、还原图层(Layer);⑥、绘制滚动条。

View绘制流程函数调用链