自定义view相关方法

171 阅读1分钟

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

后续……