跳至主要內容

02.AndroidView体系


AndroidView体系

在学习自定义控件之前,我们先了解一下Android的View体系

打开AS-->ctrl+N-->输入View

20191102_175640.png
20191102_175640.png

这样子,我们就找到了View这个类了!

View的继承关系

进到View这个类里, 选中类名,按ctrl+H,显示类的继承关系:

20191102_175853.png
20191102_175853.png

我们可以看到一些熟悉的控件,比如说ProgressBar,ImageView,TextView

所以我们得到如下的继承关系

20191102_181147.png
20191102_181147.png

继续打开ViewGroup

20191102_181347.png
20191102_181347.png

所以我们是又可以得到以下这张关系转图:

20191102_181851.png
20191102_181851.png

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.