View的绘制由三个步骤组成 : measure(测量) , layout(布局位置) , draw(绘制)。
在了解整个绘制流程前需要先了解Android用户界面的层级关系:
在这个层级关系中最内部的ContentView才是我们在onCreate()中设置的View.
在ActivityThread中,当Activity对象被创建后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并且将ViewRootImpl对象和DecorView建立关联。而View的流程就是从ViewRoot的performTraversals方法开始的,经过三个流程才最终将一个View绘制出来。
- measure用来测量View的宽高。
- layout用来确定View在父容器中的放置位置。
- draw这负责将View绘制在屏幕上。