1 自定义属性的声明与获取

2 onMeasure 测量
- EXACTLY、 AT_MOST 、UNSPECIFIED 测量模式
exactly :设置了一个明确值
at_most : 至多不能超过某些值 不超过父控件 比如WrapContent
unspecified: 没有限制 (scrollview 子view没有限制)
requestLayout() 触发onmeasure onlayout最终算出来的值 调用 setMeasureredDimentsion

3 onLayout (ViewGroup),普通view不需要考虑这步
1 用来决定子view的位置2 尽可能将onMeasure中一些操作移动 到onLayout() 被触发次数比onmeasure少
3 requestLayout() 触发onlayout

4 绘制onDraw
1 绘制内容区域
2 invalidate(),postinvalidate() 均被触发onDraw3 通过Canvas.drawaxxx一些方法去绘制
4 save() restore()
5 onInterceptTouchEvent(ViewGroup才含有此方法)
1 是否决定拦截事件
2 down 、move、 up 、pointer_down、 pointer_up
6 onTouchEvent
1 是否决定拦截事件2 down 、move、 up 、pointer_down、 pointer_up
后续……