Android系统自己给咱们提供十分丰硕的组件让咱们实现一应俱全的UI效果,与此同时,咱们也可以很是方便实现各类方法来实现各类强大的功能。经过继承现有的UI控件,咱们也可以拓展示有的功能。咱们也可以彻底自定义控件,实现Android系统所没有的功能。自定义控件,对于Android初学者来讲,是一个老大难的问题。其实,自定义控件没有那么困难。与其说你在自定义一个view,倒不如说你在绘画一个图形。只有站到艺术的角度,才能建立有一个更好用户体验的控件。自定义控件,应该不是一些简单API的堆砌,而应该结合现实中的绘图方法,甚至结合ps的一些技巧,才能创造出更有用户体验的View。 布局
就像咱们写文章同样,合理适当的运用词语,会为咱们文章增色很多,而一味追求堆砌华丽的辞藻,则给人一个华而不实的感受。与此相似,适当使用View,能极大的提高的用户体验,但一味的乱用自定义View则会有些多此一举的感受。一个让用户感到亲切友好的控件,才是好控件。一个酷炫屌咋天控件,会或多或少给人一种华而不实感受。何况,Android兼容性千差万别,你不免没法保证您自定义的View在其余手机上达到想要的效果,一个好控件更是应该是以稳定性,健壮性为基础。blog
固然了,深刻自定义View的自己过程,能帮助咱们更加深刻Android View绘制机制。同时,适当合理的使用自定义控件,达到一种卓越的用户体验,应该是咱们每一个Android人所求之不得的结果。继承
一般而言,可使用三种方法实现自定义控件事件
一、继承现成控件,进行拓展。思维导图
二、组合现有控件。class
三、重写View/ViewGroup实现全新的控件。基础
最难就是第三钟方法实现全新控件。兼容性
其实实现全新的自定义控件,总结起来就那么几步。用户体验
Ⅰ、在OnMeasure()方法中,测量自定义控件的大小,使自定义控件可以自适应布局各类各样的需求。技巧
Ⅱ、在OnDraw()方法中,利用哼哈二将(Canvas与Paint)来绘制要显示的内容。
Ⅲ、在OnLayout()方法中来肯定控件显示位置。
Ⅳ、在OnTouchEvent()方法处理控件的触摸事件。
相应的思惟导图以下:
这就是我对自定义View的总结,本人才疏学浅,欢迎你们吐槽。