View的绘制流程
根部: Android framework 处理是从根节点开始,对布局进行measure和draw ,整个View树的绘制流程在ViewRoot.java类的performTraversals()函数展开 performTraversals: 1.是否需要重新计算视图大小measure,2.是否需要重新安置视图的位置layout,3.是否需要重新绘制draw (measure测量)大小 -->(layout安排)位置 --> (draw绘制)内容 绘制顺序 DecorView是根布局 然后按照树形图遍历,父view要measure自己之后再去遍历子view measure 过程传递的两个类 ViewGroup.LayoutParams(View自身的布局参数) 用来指定高度和宽度,getLayoutParams()会得到父view的layoutParams MeasureSpecs类(父视图对自视图的测量要求) 测量和尺寸要求,有三个模式 UNSPECIFIED,没有约束 EXACTLY 确定尺寸 AT_MOST 父控件所给的最大尺寸,通常自定义 绘制流程 measure流程 view的 measure方法 measure(int,int) 调用onMeasure(int,int),但是measure是final类,所以子类必须复写onMeasure。 onMeasure: