用户交互(UI)

你的app的ui是唯一用户能够看到和交互的部分。Android提供了各种的预制的UI组件比如说结构化的布局对象和UI控制,来让你为你的app构造ui。Android也提供了其他的ui模块比如说对话框dialog,和通知栏notification以及菜单。




一览概述

所有构造的ui元素都是使用了view或者viewgroup进行构造的。View是一种可以在屏幕上进行绘制以供用户交互的对象。Viewgroup是一种可以包容其他view或者viewgroup的view,为了定义交互的布局而设立。


Android提供了一组view以及viewgroup的子类,可以提供一些典型的输入控制比如按钮和文本框。以及过重布局模型。




UI布局

每一个ui的组件都是使用了一些view和viewgroup的层及框架来定义的,如同图1中显示的那样。每一个view group都是组织子view的不可见的容器,而子空间具有输入控制功能,或者是其他可以绘制ui的组件。这个层次结构可以按照你的需求简单或者复杂,当然越简单个的越好。




 




要声明你的布局,你可以实例化一个view对象然后通过代码构造一个树,但是最简单有效的方法是使用xml文件定义你的布局。Xml文件提供了一个具有可读性的布局,和html类似。


View的Xml的元素的名称和他代表的元素想对应。也就是说<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>






当你的app加载这个布局的资源的时候,android就睡为布局中每一个节点创造对象,你可以使用它们来定义其他的行为,比如查询对象状态,或者改变布局。




创建UI布局的更多指南请参照XML Layouts一节。




UI组件

你不必使用view和viewgroup构建你所有的ui。Android提供了集中app组件,你可以通过定义内容来构建标准的ui。这些ui组件每一个都有独特的api,它们在对应的文档中描述,比如说ActionBar,Dialogs,以及Status Notification。