自定义view的流程分为measure、 layout、draw三个主要步骤,今天我们通过源码来分下下measure的过程
我们从顶级view开始,顶级view即DecorView, view的事件都是先经过这个DecorView, 接下来我们来看看这个DecorView的MeasureSpec的创建过程:
ViewRoot 对应 ViewRootImpl类, 是连接WindowManager 和 DecorView的纽带, 进入ViewRootImpl中,查看measureHierarchy方法,有如下代码:
这里只是截选一部分的源码, 我们看到这个baseSize, 其实就是屏幕的尺寸大小, 获取宽的MeasureSpc的方法: