Android
应用程序的用户界面是用户可以看见并与之交互的任何东西。Android
提供了多种预制的用户界面组件例如结构化的布局对象、界面控件,支持你为你的应用程序构建图形化用户界面。Android
也为特殊的界面例如对话框、提示和菜单等提供其它的用户界面模块。
Android
应用程序的所有的用户界面元素都是使用视图(View
)和视图组(ViewGroup
)对象创建的。视图对象是在屏幕上绘制用户可以交互的东西的对象。视图组是包含其他视图对象或视图组对象的对象,定义了界面的布局。
Android
提供了一组视图和视图组子类,为你提供了通用的输入控制(例如按钮或文本框)和多种多样的布局模型(例如线性或相对布局)。
用户界面布局
应用程序的每个组件的用户界面使用一层视图或视图组对象定义,如下图所示。每个视图组是一个不可见的容器,用以组织子视图。子视图可以是绘制用户界面的某一部分的输入控件、其他小工具等。这个层次树可以足够简单,也可以非常复杂(但是简单对性能是最好的)。
为了声明你的布局,你可以在代码中实例化,构建视图对象,并且搭建一个视图层次树。但是最简单和最有效的方式是使用XML
文件定义你的布局。XML
为布局文件提供了一个类似于HTML
的易读的结构。
视图的XML
元素的名称对应于它表示的Android
类。一个<TextView>
元素在你的用户界面中创建一个TextView
对象,而<LinearLayout>
元素创建一个LinearLayout
视图组对象。
例如,一个简单的带有一个文本和一个按钮的垂直布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a Button" />
</LinearLayout>
当在你的应用程序中加载一个布局资源时,Android
由布局的每个节点初始化为一个运行时对象,你可以定义这些对象的额外的行为、访问对象状态或修改布局等。
用户界面组件
你不必用视图和视图组对象创建你整个用户界面。Android为几个应用程序组件提供了标准的界面布局,你需要做的只是简单地定义内容。这些界面组件有不同的API,在它们各自的文档中有相关描述,例如ActionBar
、Dialogs
和Status Notifications
。