Android 常用 UI 组件-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
1. View 和ViewGroup
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设计与显示任务
2. Android UI 开发概述
Android中使用一个叫做“widget”的集合来描述所有的View元素可称其为View控件它包括界面布局、控件和 AdapterView 等。综上所述可以得到如下所述的 5 种 AndroidUI 开发分类。
2.1 界面布局开发
除AdapterView之外的ViewGroup的子孙类,以下列出的是几种常用的界面布局方式。常用布局按照横或竖的线性排列布局。
(1) LinearLayout(线性布局)
常用布局按照横竖线性排列布局。
(2) RelativeLayout (相对布局)
常用布局按照相对位置来布局。
(3) FrameLayout帧布局
一块在屏幕上提前预定好的空白区域可以填充一些 View 元素到里面。
(4) TableLayout (表格布局)
以表格的形式布局。
(5) AbsoluteLayout (绝对布局)
通过绝对位置坐标布局但不能做屏幕适配故不推荐使用。
具体操作介绍
Android UI 开发·界面布局开发·案例分析
2.2 控件开发
继承自View的单个界面元素。 Android自带了几十个控件,常见的比如TextView (文本框) 、EditText (编辑框) 、Button (按钮)、CheckBox (复选框)、ImageView (图片显示控件) 、VideoView (视频播放控件)等。这些控件一般通过各种界面布局方式或AdapterView等被安排在界面中,显示给用户,并与用户进行交互。
2.3 AdapterView 与 Adapter 开发
AdapterView 的子孙类。除了界面布局方式和基本的控件之外Android 中还提供了多个与适配器相关的控件,这些控件都使用一个适配器来决定该控件显示的内容,它通常是一个列表其中的数据由适配器提供而数据源则比较灵活可以是程序内部数据、本地数据或网络数据等。常用的系统自带的Adapter有BaseAdapter、 SimpleAdapter和SimpleCursorAdapter等,除此之外,开发者还可以继承BaseAdapter来自定义Adapter.常见的与适配器相关的控件有ListView、 Spinner、 Gallery和GridView等。
2.4 UI 组件开发
与UI相关的Android组件。Android提供了包括之前讲过的四大组件在内的一套组件,其中有一些是与UI开发相关的,一般将这些与UI开发相关的组件称为UI组件,它们让开发者在设计UI时,多出了一种不使用View和ViewGroup对象的选择。
UI组件提供了一套标准化的 UI 布局开发者只需要简单地指定其中的内容这些组件即可按照各自的布局格式将信息显示在屏幕上,所以使用它们变得非常方便。这些组件通常不是继承自View或ViewGroup,但是它们仍然是使用View的子孙类将信息显示在屏幕上的,所以它们与View的关系非常密切。
常用的UI组件有Menu、 ActionBar (4.0的新特性) 、Dialog和Notification等,其中Menu 是 View 的子类而后三者个是。
2.5 自定义 View、图形图像和动画
无论是控件,还是UI组件,开发者都可以自定义其中的界面布局样式,通常的做法是继承一个View或其子孙类,然后重写一些方法,一般都需要重写onDraw()方法,该方法用来定义在屏幕上如何进行绘制。
自定义 View 在界面美化、视频图像处理和游戏开发等技术中常被使用。图形图像处理中也大量地应用到了自定义View. Android中提供了一些类库,可以实现动画效果。