自定义控件流程

自定义控件流程

看慕课网的视频,整理了自定义控件的流程,从自定义属性、测量、布局、绘制、手势事件、事件拦截等多个步骤。

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

分析需要的自定义属性,在res/values/attrs.xml定义声明,在layout xml文件中进行使用,在view的构造方法中获取。

2.测量

3种测量模式:exactly、at_most、unspecificed

3.布局

决定子view的位置,尽可能将onmeasure中一些方法移动到此方法中,

4.绘制onDraw

绘制之线程:ui线程中更新界面用invalidate方法,子线程中更新用postinvalidate方法。

Canvas.draw****,draw多种方法,圆 三角形 贝塞尔函数等,比较多,需要研究

Canvas几种动画,translater 、rotate、scale、skew也会用到

paint,该类保存了绘制几何图形、文本和位图的样式和颜色信息。也就是说我们可以使用Paint保存的样式和颜色,来绘制图形、文本和bitmap,这就是Paint的强大之处。

save方法用于临时保存画布坐标系统的状态

restore方法可以用来恢复save之后设置的状态,

 5.ontouchevent

触摸事件处理,手势事件监听,包括move、up、down多种事件。

6.onintercepttouchevent

事件拦截,包括父控件拦截子控件事件,子控件要求父控件拦截事件等方法。