下载后可任意编辑View 绘制流程第一步: 递归 measure 源码分析//final 方法, 子类不可重写public final void measure(int widthMeasureSpec, int heightMeasureSpec) {
//回调 onMeasure()方法onMeasure(widthMeasureSpec, heightMeasureSpec);}这个方法的两个参数都是父 View 传递过来的, 代表了父 view 的规格
她由两部分组成, 高 2 位表示 MODE, 低 30 位表示 size
//View 的 onMeasure 默认实现方法protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {setMeasuredDimension(下载后可任意编辑getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));}对于非 ViewGroup 的 View 而言, 经过调用上面默认的 onMeasure即可完成 View 的测量
setMeasuredDimension 函数是一个很关键的 函 数 , 它 完 成 了 对 View 的 成 员 变 量 mMeasuredWidth 和mMeasuredHeight 变量赋值
public static int getDefaultSize(int size, int measureSpec) {int result = size;//经过 MeasureSpec 解析猎取 mode 与 sizeint s