了解android的View体系,才知道后面咱们步骤写Android自定义控件作准备。android
要明白View
和ViewGroup
。markdown
要能判断经常使用的控件是属于View
仍是ViewGrop
,接着才有本身要写的控件属于View
仍是ViewGroup
。spa
为何呢?code
由于自定义View
跟自定义ViewGroup
的步骤,套路不同。orm
Android自定义控件呢,咱们能够分为三类:it
自定义组合控件,其实就是把多个如今有控件整合在一块儿,把复杂的操做封装起来,把简单的操做暴露出去。io
好比说咱们要作如下这个控件:table
固然能够重头开始绘制,从无到有。class
咱们也可使用两个button
+ 一个TextView
或者EditText
组合起来。import
而后把复杂的逻辑封装起来,好比说,上限和下限的判断,好比说增长梯度,好比说阀值,达到必定的值会改变颜色之类的。这些复杂的操做封装起来。对外只暴露数据变会的回调通知和设置数值/获取数值的方法便可。
别人拿到你的控件,不关心怎么实现,只关心使用便可。
自定义View,什么是View,从控件的角度来理解,咱们能够这样判断。若是控件里没有孩子的,没有子View的,就是View,好比说Button
,TextView
,ProgressBar
,ImageView
,这些都是View
.
自定义ViewGrop,什么是ViewGroup,用来包含孩子的,控制子View的摆放的,是容器。ViewGrop里还能够包含着ViewGroup和View。好比说,LinearLayout,RetiveLayout,RecyclerView,ListView,ViewPager...这些都是ViewGrop。
好啦,这个只作了解,详情请同窗们看接下来的文章吧!相信你看完之后,会对自定义控件有信心的,加油!