android_ui布局设计

Android UI 设计

无意中看到的几篇文章,想翻译出来分享给大家。不过声明,翻译后的意思不一

定能完全表达作者的意图

/designing/story/understanding-user-interface-android

-part-1-layouts

到目前为止,我之前的几篇关于Android 的文章都集中于向你展示如何解决An

droid 中的问题,而没有花太多的时间来讨论Android 应用程序开发的视觉元素

——UI 设计。在这篇和接下来的文章,我将带你穿越构建Android 应用程序的

UI 元素。文章的开始部分,我将讨论Android 中的一些布局(Layouts )和一些

在屏幕上摆放的构件(Widget )。

Android 屏幕UI 组件

到这个时点,你已经看到Android 应用程序最基本的单元式Activity 。Activity

用于显示应用程序的UI,它可能包含许多构件,如buttons, labels, text boxes

等。一般,你会使用一个XML 文件(例如,位于res/layout 文件夹下的main.

xml 文件)来定义你的UI,它看起来像这样:

android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>

在运行时,你在Activity 的onCreate 事件处理函数里加载XML UI,使用Ac

tivity 类的setContentView 方法:

@Override
1
public void onCreate (Bundle savedInstanceState) {
2
3
super.onCreate (savedInstanceState);
4
setContentView(R.layout.main);
5
}

在编译期间,XML 文件中的元素会编译成相应地Android GUI 类,并设定了指定的特性。当加载时,An

droid 系统会创建Activity 的UI。

使用XML 文件来构建UI 往往是比较容易的,然后,也存在一些时候需要你在运行时动态地构建UI (例如,

当编写游戏)。因此,也有可能完全通过代码来创建的你的UI。

Views 和ViewGroups

一个Activity 包含View 和ViewGroup 。一个View 是一个构件,它在屏幕上有一个外观。构件包括bu

ttons, labels, text boxes 等。一个View 继承自android.view.View 基类。

一个或多个View 可以组合起来放入一个ViewGroup 。一个ViewGroup (它是特殊类型的View )提供

一个布局,在其上你可以安排View 的显示和次序。ViewGroup 包括LinearLayout, FrameLayout 等。

一个ViewGroup 继承自android.view.ViewGroup 基类。

Android 支持以下的ViewGroup:

• LinearLayout
• AbsoluteLayout
• TableLayout
• RelativeLayout
• FrameLayout
• ScrollView

接下来的章节将讨论每个ViewGroup 的细节。注意,在练习中,通常会嵌套不同类型的布局来创建想要

的UI。

创建一个简单工程

创建一个新的Android 工程,如图1 所示命名它。

图 1 使用