目录
编辑
1. View 和ViewGroup
2. Android UI 开发概述
2.1 界面布局开发
2.2 控件开发
2.3 AdapterView 与 Adapter 开发
2.4 UI 组件开发
2.5 自定义 View、图形图像和动画
Android中所有的UI元素都是使用View和ViewGroup对象建立的, View是一个可以将一些信息绘制在屏幕上并与用户产生交互的对象,而 ViewGroup是一个包含多个View和ViewGroup 的容器,用来定义 UI 布局。
Android提供了一系列的View和ViewGroup的子类,开发者可以灵活地组合使用它们来完成界面布局、界面元素绘制和用户交互等工作。同时,开发者还可以选择性地继承一些系统提供的View,来自定义View,把自己定义的界面元素显示给用户。
Android 使用 View类作为界面开发的超类,所有的界面开发都与 View 有关.多个 View是一个ViewGroup,但ViewGroup本身继承自View,所以, Android界面由View和ViewGroup任意组合而成, Android的界面开发其实就是对View及其各种子孙类做操作。
Android的UI开发使用层次模型来完戌,一般都是在一个ViewGroup中嵌套多层ViewGroup,每一层中含有任意数目的View。我们可以将整个屏幕看做一个ViewGroup,它同时也是一个View.而在这个整体的ViewGroup之中,又有多个ViewGroup和View.每个ViewGroup中又可以有多个子ViewGroup和View,其基本结构如下图3-1所示。
图 3-1 View 和 ViewGroup 基本结构
需要注意的是,虽然Android没有规定嵌套的层次深度上限,但是经过大量的实际测试证明,以目前主流的Android手机配置,如果一个界面超过10层嵌套,它的性能会大幅下降,这个界面的显示会变慢,所以一般不要让嵌套的层次太多。图 3-1 中所示的 View 和ViewGroup 基本结构中有 3 层嵌套,它的性能就可以完全得到保证。
由于View和ViewGroup在UI开发中占有很重要的作用,所以有必要讲解一下两者的于孙类继承关系,如图3-2所示,图中的空心箭头表示“继承自”的关系。
图 3-2 View 的子孙类
如上图 3-2 中所示,View 的子孙类大体上由 ViewGroup 类和一些单个的界面元素组成,而ViewGroup由几个与布局有关的子类继承, Android的UI开发就是组合使用并扩展这些View 子孙类的过程。
从View和ViewGroup的继承图中可以大致把Android UI的开发划分为两部分,分别是除了ViewGroup之外的View的子孙类的开发和ViewGroup子孙类的开发,但是在ViewGroup的子类中, AdapterView (适配器控件)与其他几种相比是有很大区别的,它的内容是由Adapici (适配器)为其填亢的,所以我们可以把它单独划分为 类。Audvid中还提供一些非继承自 View 的组件,但这些组件都与 UI 开发相关,所以也属于 UI 开发的范畴,可以自成一类。为了满足更加复杂多变的UI设计需求, Android还提供了自定义View的功能,开发者可以通过自定义View来完成各种各样的UI设计与显示任务
Android中使用一个叫做“widget”的集合来描述所有的View元素,可称其为View控件,它包括界面布局、控件和 AdapterView 等。综上所述,可以得到如下所述的 5 种 AndroidUI 开发分类。
除AdapterView之外的ViewGroup的子孙类,以下列出的是几种常用的界面布局方式。常用布局,按照横或竖的线性排列布局。
(1) LinearLayout(线性布局)
常用布局,按照横竖线性排列布局。
(2) RelativeLayout (相对布局)
常用布局,按照相对位置来布局。
(3) FrameLayout(帧布局)
一块在屏幕上提前预定好的空白区域,可以填充一些 View 元素到里面。
(4) TableLayout (表格布局)
以表格的形式布局。
(5) AbsoluteLayout (绝对布局)
通过绝对位置坐标布局,但不能做屏幕适配,故不推荐使用。
具体操作介绍:
Android UI 开发·界面布局开发·案例分析:
Android UI 开发·界面布局开发·案例分析-CSDN博客
继承自View的单个界面元素。 Android自带了几十个控件,常见的比如TextView (文本框) 、EditText (编辑框) 、Button (按钮)、CheckBox (复选框)、ImageView (图片显示控件) 、VideoView (视频播放控件)等。这些控件一般通过各种界面布局方式或AdapterView等被安排在界面中,显示给用户,并与用户进行交互。
AdapterView 的子孙类。除了界面布局方式和基本的控件之外,Android 中还提供了多个与适配器相关的控件,这些控件都使用一个适配器来决定该控件显示的内容,它通常是一个列表,其中的数据由适配器提供,而数据源则比较灵活,可以是程序内部数据、本地数据或网络数据等。常用的系统自带的Adapter有BaseAdapter、 SimpleAdapter和SimpleCursorAdapter等,除此之外,开发者还可以继承BaseAdapter来自定义Adapter.常见的与适配器相关的控件有ListView、 Spinner、 Gallery和GridView等。
与UI相关的Android组件。Android提供了包括之前讲过的四大组件在内的一套组件,其中有一些是与UI开发相关的,一般将这些与UI开发相关的组件称为UI组件,它们让开发者在设计UI时,多出了一种不使用View和ViewGroup对象的选择。
UI组件提供了一套标准化的 UI 布局,开发者只需要简单地指定其中的内容,这些组件即可按照各自的布局格式将信息显示在屏幕上,所以使用它们变得非常方便。这些组件通常不是继承自View或ViewGroup,但是它们仍然是使用View的子孙类将信息显示在屏幕上的,所以它们与View的关系非常密切。
常用的UI组件有Menu、 ActionBar (4.0的新特性) 、Dialog和Notification等,其中Menu 是 View 的子类,而后三者个是。
无论是控件,还是UI组件,开发者都可以自定义其中的界面布局样式,通常的做法是继承一个View或其子孙类,然后重写一些方法,一般都需要重写onDraw()方法,该方法用来定义在屏幕上如何进行绘制。
自定义 View 在界面美化、视频图像处理和游戏开发等技术中常被使用。图形图像处理中也大量地应用到了自定义View. Android中提供了一些类库,可以实现动画效果。