【自定义View系列】android自定义View概述

325人阅读 评论(0) 收藏 举报
分类:

  自定义view是一个综合的技术体系,本说明文档不去分析一个个具体的自定义view的实现,因为自定义view五花八门,是不可能全部分析一遍的。虽然我们不能把自定义view都分析一遍,但是我们能够提取出一种思想,而面对陌生的自定义view时,运用这个思想去快速解决问题。这种思想的描述如下:首先要掌握基本功,比如view的弹性滑动、滑动冲突、绘制原理等等,这些东西都是自定义view所必须的,尤其是那些看起来很炫的自定义view,他们往往对这些技术点的要求更高;熟练掌握基本功后,在面对新的自定义view时,要能够对其分类并选择合适的思路。另外平时还需要多积累一些自定义view相关的经验,并逐渐做到融会贯通,通过这种思想慢慢的就可以提高自定义view的水平了。

自定义View相关类的体系

这里写图片描述

  这个体系充分的运用了面对对象封装、继承、多态的思想,主要采用模板方法模式。我们自己自定义View逃不出对以上几个方法的运用。

为何要进行自定义控件的学习

  实现Android现有控件不能够实现的功能,就需要采⽤⾃定义控件的⽅式;

自定义View的步骤

这里写图片描述

自定义属性

1.在res/values创建attrs.xml
2.attrs.xml定义自定义属性
3.布局中给特定控件制定自定义属性
4.在控件内部获取自定义属性

AndroidStudio自定义属性xmlns无法识别问题解决in Gradle projects,always use http://schemas.android.com/apk/res-auto

http://blog.csdn.net/nwsuafer/article/details/42121521

注意:
必须重载两个构造方法,其中一个是代码创建使用的,一个是布局中引入使用的

自定义View类型1:对现有控件进行拓展

继承view,重写onDraw方法
可以利用已有控件的功能实现通用的功能,自己实现特有的部分就可以了。
可以调用控件已经存在的方法,实现功能;
利用onDraw可以实现控件显示的样子;
控件可以进行自定义属性的设置

步骤
1. 继承view或者view的子类
2. 声明构造方法!!!
一个参数的构造方法:在代码中使用会被调用
两个或者三个参数的构造方法,通过layout xl文件包含控件的时候,会自定调用
如果控件希望在layout使用,控件中必须包含两个或者3个参数的构造方法,通常两个参数的构造方法就行了,没有强制要求三个构造方法都写出来。
3. 当构造完成,就可以直接在布局xml中,引用控件
4. 自定义view的引用,采用<类全路径>去引用

自定义View类型2:通过组合来实现新的控件(继承viewgroup派生特殊的layout)

方式:将android中已有的控件,通过代码的方式,将这些控件组合在一起,实现更复杂的功能;
常见的案例:autocompletetextview、spinner
常见的第三方控件:瀑布流、拨号盘、侧滑菜单、水纹进度等等

步骤:
1. 集成viewgroup以及viewgroup的子类
2. 构造方法的声明
3. 初始化,其实各种效果都在初始化中实现

自定义View类型3:重写view来实现全新的控件

自己来实现外观,自己来写事件
步骤:
1. 继承view
2. 声明构造方法:现阶段 有三种构造方法
3. 绘制onDraw实现自己的外观
4. 尺寸的测量:告诉父容器,自身的尺寸
5. 可选:实现点击、手势
6. 可选:内容的刷新、线程的支持

自定义View的事件处理

包括:
View自身事件处理
Touch事件监听器事件处理
事件分发处理
常用接口回调来增加自定义View的扩展性

自定义View更新数据和刷新操作

1.invalidate强制View刷新,调用onDraw方法,invalidate必须在主线程中执行
2.postInvalidate强制View刷新,调用onDraw方法,postInvalidate可以在子线程执行,也可以在主线程执行

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    写给自己
    ○ 种一棵树最好的时间是十年前,其次是现在

    ○ 坚持输出,坚持书写,才可以持续成长

    ○ 所有美好事物的成长都是缓慢的

    ○ 既往不恋,未来不迎,当下不杂

    ○ 业精于勤,荒于嬉,行成于思,毁于随

    ○将军赶路 不追小兔

    ○不要拘泥于语言,同样也不要拘泥于行业,眼光放远一点

    ○ 如果某件事你做的不够好,不必介怀,因为以后的每一次每一天你都会做得越来越好

    ○ 此心不于事上磨,更于何处磨此心

    ○ 保持热情,保持求知欲

    ○ 千里之行,始于足下

    ○ 最怕你一生碌碌无为,还安慰自己平凡可贵。

    ○ 对于任何事,要保持自觉积极主动探索尝试。但是如果自己不积极认真地生活,不管得到什么样的回答都没有用。——解忧杂货店
    个人资料
    • 访问:634715次
    • 积分:8613
    • 等级:
    • 排名:第2507名
    • 原创:354篇
    • 转载:61篇
    • 译文:0篇
    • 评论:141条
    个人简介