Android View 绘制的流程大致包括以下几个步骤:
请求绘制:当 View 需要被绘制时,会调用 invalidate()
方法触发重绘操作。在 invalidate()
方法中,会调用 ViewRootImpl
的 scheduleTraversals()
方法,该方法最终会调用 scheduleTraversals()
方法来开始进行绘制操作。
测量大小:在进行绘制操作之前,需要对 View 进行测量,确定其大小和位置。首先会调用 measure()
方法来测量 View 的大小,这个过程包括测量 View 自身的大小以及其子 View 的大小。
布局位置:测量完成后,会调用 layout()
方法来确定 View 的布局位置,将 View 放置在父容器中的指定位置。
绘制内容:最后调用 draw()
方法来进行实际的绘制操作,在 draw()
方法中,会调用 View 的 onDraw()
方法来绘制 View 的内容,同时也会绘制其子 View 的内容。
绘制完成:当绘制操作完成后,会调用 ViewRootImpl
的 finishTraversal()
方法来完成整个绘制流程,并将绘制结果显示在屏幕上。
总的来说,Android View 绘制的流程包括测量大小、布局位置、绘制内容等几个步骤,最终完成整个绘制操作并将结果显示在屏幕上。