自定义控件流程
看慕课网的视频,整理了自定义控件的流程,从自定义属性、测量、布局、绘制、手势事件、事件拦截等多个步骤。
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
事件拦截,包括父控件拦截子控件事件,子控件要求父控件拦截事件等方法。