各位看官们大家好,上一回中咱们说的例子是"给EditText添加眼睛图片来实现显示和隐藏密码功能",这一回中咱们说的例子是"自定义View的思路"。闲话休提,言归正转,让我们一起Talk Android吧!
使用背景
在实际项目中会遇到一些功能无法通过系统自带的UI控件实现,此时就需要自定义View。我们在一百回左右介绍过自定义View的知识,不过没有一个整体的思路,本章回中将介绍自定义View的整体实现思路,并且分享一些我在自定义View中积累的经验。
整体思路
自定义View有很多分类,不同的分类有不同的思路,我们先依据分类来介绍具体的思路,然后再介绍整体的思路:
- 扩展系统控件。就是对系统现有的控件进行扩展.
它的实现思路:定义系统控件的子类,在子类中对系统控件进行扩展,比如添加事件或者画一些特殊的图形和文字;添加事件需要重写父类的onTouchEvent
()方法;画图形或者文字需要重写父类的onDraw
()方法。onMeasure()和onLayout方法不需要重写,使用父类的就可以。 - 自定义View,就是创建一个全新的View。
它的实现思路:定义View的子类,在子类中实现View的各种功能:测量,布局、绘制、响应事件。实现这些功能通过重写View类的方法来实现:onMeasure(),onLayout(),onDraw(),onTouchEvent().
通常情况下View中通常不包含子类&#