View的绘制流程,指的就是measure、layout和draw。其中,measure用来测量View的宽和高,layout用来确定View的位置,draw则用来绘制View。
重要角色:

  1. ViewRootImpl
  2. MeasureSpec

MeasureSpec解析

  1. MeasureSpec是View的静态内部类
  2. 封装了一个View的规格尺寸
  3. 在Measure流程中,系统会将View的LayoutParams根据父容器所施加的规则转换成对应的MeasureSpec,然后在onMeasure方法中根据这个MeasureSpec来确定View的宽和高。

作为顶层View的DecorView来说,其并没有父容器,那么它的MeasureSpec是如何得来的呢?