用户界面综述
在Android应用中所有的用户界面元素都是使用 View
和 ViewGroup
对象构建的。View
是可以在屏幕上绘制出用户交互内容的对象。ViewGroup
是用来定义界面布局和容纳其他 View
(和 ViewGroup
)的对象。
Android准备了一些 View
和 ViewGroup
子类为你提供普通输入控制(比如按钮和文本输入框)和各种各样的布局模块(比如线性布局和相对布局)。
用户界面布局
应用中每个组件的用户界面是如图1那样使用 View 和 ViewGroup 层次结构定义的。每个视图组都是一个可见的、可组织子视图的容器,子视图可能是输入控制或用来绘制UI某些部分的其他窗口部件。层次树会根据你的需要变得简单或复杂(但是简单可以提供最好的性能)。
图1.定义UI布局的视图层次插图。
你可以在代码里实例化一个 View 对象然后构建一层次树来定义你的布局,但是最简单和搞笑的方式是在XML文件中定义布局。XML类似HTML为视图提供了一个人类可读的结构。
XML元素的名称与它体现的Android类相对应。所以<TextView>
元素可以在你的UI种创建 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会把每个布局节点初始化到运行时对象中,这样你就能用它定义附加行为、查询对象状态或修改布局。
请查阅 XML Layouts 了解创建UI布局的完整指南。
用户界面组件
你不必使用 View
和 ViewGroup
对象来构建所有的用户界面。Android准备了一些应用组件为你提供标准的UI布局,这样你只需要简单的定义内容就可以了。这些UI组件每个都有一套独特的API,在各自的文档中都有描述的,例如 Action Bar,Dialogs 和 Status Notifications。