Android View 繪制流程如下:
在 ViewRootImpl 中調(diào)用 performTraversals() 方法,開(kāi)始繪制流程。
調(diào)用 ViewRootImpl 中的 performMeasure() 方法進(jìn)行測(cè)量操作。測(cè)量過(guò)程中,會(huì)調(diào)用 View 的 onMeasure() 方法,根據(jù) View 的 MeasureSpec(測(cè)量規(guī)格)來(lái)確定 View 的測(cè)量寬高。
調(diào)用 ViewRootImpl 中的 performLayout() 方法進(jìn)行布局操作。布局過(guò)程中,會(huì)調(diào)用 View 的 onLayout() 方法,根據(jù)測(cè)量寬高和父容器的布局規(guī)則,確定 View 的位置。
調(diào)用 ViewRootImpl 中的 performDraw() 方法進(jìn)行繪制操作。繪制過(guò)程中,會(huì)調(diào)用 View 的 onDraw() 方法,繪制 View 的內(nèi)容。
繪制完成后,系統(tǒng)會(huì)將繪制結(jié)果顯示到屏幕上。
以上就是 Android View 的繪制流程。需要注意的是,如果 View 的內(nèi)容發(fā)生了變化,或者需要強(qiáng)制更新界面,則可以調(diào)用 View 的 invalidate() 方法,觸發(fā)重新繪制流程。