自定义控件:
控件展示在ui上的流程
measure(测量)——layout(布局)——draw(绘制)
回调方法:onmeasure onlayout ondraw
继承view:测量,绘制
继承viewGroup:测量,布局
事件分发:
底层—顶层
(viewGroup—view)
事件处理:(消费)
顶层—底层
(view—viewGroup)
需要拦截干扰事件
自定义控件的步骤:
1,自定义类继承试图View或直接子类
2,自动生成三个构造方法(构造方法中调用相应方法)
AttributeSet attrs
(命名空间,属性名)
attrs.getAttributeValue(NAME_SPACE,”desOn”);
3,自定义属性 values 文件夹 新建attrs.xml
<declare-styleable name="控件的类名">//写的那个java文件
<attr name="desTitle" format="string" />
<attr name="desOn" format="string" />
<attr name="desOff" format="string" />
</declare-styleable>
4,引用后直接生成对应的命名空间
如果引用后不生成命名空间,重启eclipse或者刷新项目即可
5,AttributeValue attrs
获取xml文档中设置的属性,前两个构造方法AttributeValue attrs参数中获取
6,视图属于自定义,所以需要自己找控件,
并且从前两个构造方法中读取到的属性赋值给自己定义视图中的控件
7,无法从预览图中查看,需要实际运行