step1 自定义属性的声明和获取
- 分析需要的自定义属性,比如位置position,半径radius
- 在res/values目录下,创建一个attrs.xml文件,定义声明
- 创建一个类,继承View或者ViewGroup类
- 在layout的xml文件中对自定义控件进行使用
step2 实现创建的类中的方法
- onMeasure(ViewGroup)对父控件以及子控件的宽高以及显示位置进行测量
- onDraw(View)
- 绘制内容区域,比如在TextView控件中,background在这里不用考虑,需要考虑是它的text
- 需要调用Canvas.drawXXX函数
- onLayout(ViewGroup)父控件去决定子控件的布局
- 决定子View的位置
- 尽可能将onMeasure的一些操作移动到此方法里面
- onTouchEven
- 如果自定义的控件需要与用于交互时候,需要用到这个方法
- MotionEvent的操作
- onInterceptTouchEvent(ViewGroup)
- 父控件是否要拦截子控件的手势