经过前面对 Android 自定义控件初步了解以后,我们接下来就在前面的基础上更加深入了解所谓的 Android 自定义控件!
# AndroidView 体系
在学习自定义控件之前,我们先了解一下 Android 的 View 体系
打开 Android Studio --> ctrl+N --> 输入 View
这样子,我们就找到了 View 这个类了!
# View 的继承关系
进到 View 这个类里, 选中类名,按 ctrl+H,显示类的继承关系:
我们可以看到一些熟悉的控件,比如说 ProgressBar
, ImageView
, TextView
所以我们得到如下的继承关系:
继续打开 ViewGroup
所以我们是又可以得到以下这张关系转图:
# View 和 ViewGrop 的区别
先看 ViewGroup,就是 View 组的意思是吧!也就是说,ViewGrop 里面有很多子 View,用于管理 / 摆放子 View 的 View 就叫 ViewGroup。
什么是 View 呢?严格上来说,都是 View,为什么呢?有了前面的定义,ViewGroup 里面的全是 View,因为你是 View-Group 呀!而 ViewGrop 里也可以方 ViewGrop,所以说,ViewGroup 也可以认为是 View。比如说 LinearLayout 里面还可以放 LinearLayout 吧!
但是通常来说,我们说自定义 View 指的是定那些需要自己绘制的控件,重点是绘制,比如说时钟呀,波浪效果这些…View 里面不再摆放其他的子 View,我们把这种称为 View
而 ViewGroup,则是用于控制 View 的摆放,比如说 LinearLayout,让子 View 成线性摆放,RelativeLayout 让子 View 以相对的位置进行摆放…
# 总结
对于 Android 的 View 体系,了解继承关系,知道怎么区分是 View,什么是 ViewGroup 即可。View 注重的是绘制内容,ViewGropu 注重子 View 的摆放。
有了这些基础知识,我们后面写自定义控件就可以步骤化了。第一步就是要判断你写的这个控件属于 ViewGrop 还是 View.