View 通过 measure 来测量 View 的宽高,layout 来确定 View 在父容器中的放置位置,draw 则负责将 View 绘制在屏幕上。
Measure 完成后,可以通过 getMeasuredWidth 和 getMeasuredHeight 获取 View 的宽高,在几乎所有情况下它都等于 View 的最终宽高,但是特殊情况除外,
Layout 过程决 View 的四个顶点坐标和实际的 View 的宽高,完成后可以通过 getTop、getBottom、getLeft、getRight 来拿到 View 的四个顶点的位置。并可以通过 getWeight 和 getHeight 拿到 View 的最终宽高。
Draw 过程决定了 View 的显示,只有 draw 方法完成以后 View 的内容才会呈现在屏幕上。
自定义 View,如果继承 ViewGroup 必须要重写 onLayout 方法,继承 View 则没有限制。