View简介
在Android操作系统中,几乎所有的UI元素都是基于View
和ViewGroup
创建出来的。View就是一块可以用来进行绘画,可以处理输入事件进行交互的矩形区域,而ViewGroup
就是一种可以容纳View的矩形容器。
下图就是ViewGroup
和View
组成的UI布局结构。View
和ViewGroup
通过这种树形结构组合在一起,构成了我们在手机屏幕上看到的一个个的复杂的界面。
从设计模式的角度看,ViewGroup
和View
是组合模式的典型应用。View
是基本的控件元素,ViewManager
接口定义了添加、删除View
的接口addView
、removeView
,ViewGroup
实现了ViewParent
的接口,因此可以作为容器管理View,同时ViewGroup
又继承自View
,可以被其他的ViewGroup
管理。这样ViewGroup
和View
就可以组成上面的树状结构了。
实际的代码实现过程中很少会直接使用ViewGroup
和View
,而是使用继承自它们的之类,如FrameLayout
、LinearLayout
、ListView
等是ViewGroup
的子类,TextView
、ImageView
、SurfaceView
等是View的子类。
创建View树
上面介绍了ViewGroup
和View
是通过View树的形式组合在一起的,一个View树也就是一个Layout布局,下面就介绍一下怎样创建、管理Layout布局。
从Layout资源创建View树
最常见的创建Layout的方式就是使用Layout资源。Android 应用的代码目录结构里,在资源res文件夹下有一个layout文件夹