跳至主要內容

01.自定义控件


自定义控件

很多同学都害怕自定义控件,从无到有,不知道怎么下手。结果这课程的话,你就知道了自定义控件的来龙去脉了。

你会学习在写自定义控件之前如何去分析,怎么下手,都可以步骤化。

课程内容

20191102_162525.png
20191102_162525.png

AndroidView体系

了解android的View体系,才知道后面我们步骤写Android自定义控件做准备。

要明白View和ViewGroup。

要能判断常用的控件是属于View还是ViewGroup,接着才有自己要写的控件属于View还是ViewGroup。

为什么呢?

因为自定义View跟自定义ViewGroup的步骤,套路不一样。

Android自定义控件类型

Android自定义控件呢,我们可以分为三类:

  • 自定义View(包括对现有View的修改)
  • 自定义ViewGrop(包括对现有ViewGroup的修改)
  • 自定义ViewGrop

自定义组合控件例子

自定义组合控件,其实就是把多个现在有控件整合在一起,把复杂的操作封装起来,把简单的操作暴露出去。

比如说我们要做以下这个控件:

20191102_171654.png
20191102_171654.png

当然可以重头开始绘制,从无到有。

我们也可以使用两个buttonl+一个TextView或者EditText组合起来。

然后把复杂的逻辑封装起来,比如说,上限和下限的判断,比如说增加梯度,比如说阀值,达到一定的值会改变颜色之类的。这些复杂的操作封装起来。对外只暴露数据变会的回调通知和设置数值/获取数值的方法即可。

别人拿到你的控件,不关心怎么实现,只关心使用即可。

自定义View例子

自定义View

什么是View,从控件的角度来理解,我们可以这样判断。如果控件里没有孩子的,没有子View的,就是View,比如说Button,TextView,ProgressBar,ImageView,这些都是View.

自定义ViewGroup例子

自定义ViewGrop

什么是ViewGroup,用来包含孩子的,控制子View的摆放的,是容器。ViewGrop里还可以包含着ViewGroup和View。比如说,LinearLayout,RetiveLayout,RecyclerView,ListView,ViewPager...这些都是ViewGrop。

好啦,这个只做了解,详情请同学们去看接下来的课程吧!相信你学完以后,会对自定义控件有信心的,加油!