Android 自定义控件浅谈
在做自定义控件时,我们要清楚自定义控件有哪些,是怎么分类的,我们应该如何去选择?
Android自定义控件主要分为三类:
- 自定义控件,继承View或者ViewGroup类(重写onDraw方法,调用invalidate方法重新绘制View,譬如说计数器);
- 组合控件(把系统现有的控件组合在一起,创建一个新的控件);
- 自定义扩展控件,也就是继承现有的控件,在该控件的基础之上添加新的功能。(譬如继承Button,tablayout等)。
如何去选择?
我说一下我的理解,不对之处望雅正。首先要学会去分割控件,比如这个控件是由几个部分组成的,各个部分是否可以通过现有的控件实现呢。
自定义控件:就是原先没有的,需要我们去开发创建的。如下图,基本上是不可能通过Android提供的基础控件去组合,或者扩展实现的,这时候就需要自定义view实现。
其次,我们还需要知道canvas有哪些接口,可以画出哪些图案。
组合控件:控件通过已有的基础控件组合就可以实现的。如下图,可以把该控件分为一个Imageview和textView,或者分为Button和textView就可以实现了。当然也可以使用扩展控件去实现。
扩展控件:简单来说,就是当前基础控件不能满足你的需求,需要你去扩展它的功能或者UI。比如,一个button点击后需要显示动画,那你就可以进行扩展。