Android开发速成简洁教程六:用户界面设计

移动开发 Android
Activity是Android应用用户界面的基本组成部件。但Activity本身并不提供用户界面(User Interface)。从程序结构层次上来说,一个Android应用是类android.app.Application的一个实例, Application中可以包含多个android.app.Activity实例。

Activity是Android应用用户界面的基本组成部件。但Activity本身并不提供用户界面(User Interface)。从程序结构层次上来说,一个Android应用是类android.app.Application的一个实例, Application中可以包含多个android.app.Activity实例。每个Activity 带一个Window类,这个类在Android平台上没有提供太多功能,主要可以用来控制标题栏(屏幕顶端)。比如设置UI全屏显示可以使用如下代码:

  1. requestWindowFeature(Window.FEATURE_NO_TITLE);    
  2. indow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,     
  3. WindowManager.LayoutParams.FLAG_FULLSCREEN);  

Activty缺省是不含用户界面,如需显示用户界面,则可以调用setContentView()来设置Activity的ContentView。 ConentView描述了具体的UI组件,如文本框,标签,列表框,图片框的。

Android的用户界面其实就是指ContentView的设计。“View”开始会使人产生误解,在其它平台“View”一般指类似Form的 概念。而在Android平台上View是UI组件,相当于其他平台的Component,ViewGroup相当于其它平台的Container,如下 图所示:

有了这个对应关系就很容易将你已有的用户界面设计知识用在Android的用户界面设计上来。

此外Android用户界面设计一个推荐的方法是使用XML来描述UI,这也不是Android平台的首创,Java ME Polish,WPF,Silverlight等都采用XML来描述UI,使用XML来描述的好处是将用户界面和程序逻辑分开,可以做到用户界面的改变不 影响程序逻辑,程序逻辑的变动也可以不影响用户界面,实际上是采用了MVC模式的设计。Activity 是MVC中的Controller,Activity的ContentView则是MVC中的View。如果你不想使用XML来描述UI,也可以使用代码 来创建UI,不过这种方法既麻烦,也增加了模块之间的耦合度。

理解了Android的View和ViewGroup之后,具体设计用户界面并不复杂,一般来说ViewGroup定义它的子View的布局 Layout,也就是其它View (文本框,标签等控件或是其它ViewGroup)在用户界面的位置安排。如上图所示,这个层次关系可以嵌套。通过嵌套,你可以定义出任意用户界面。

Android中的基本布局如下:

FrameLayout

 最简单的布局对象

 在屏幕上故意保留的空白空间,你可以之后填充一个单独的对象

 例如:一个你要更换的图片

 所有子元素都钉到屏幕的左上角

 不能为子元素指定位置

LinearLayout

 在一个方向上(垂直或水平)对齐所有子元素

 所有子元素一个跟一个地堆放

 一个垂直列表每行将只有一个子元素(无论它们有多宽)

 一个水平列表只是一列的高度(***子元素的高度来填充)

TableLayout

 把子元素放入到行与列中

 不显示行、列或是单元格边界线

 单元格不能横跨行,如HTML 中一样

AbsoluteLayout

 使子元素能够指明确切的X / Y 坐标显示在屏幕上

 (0,0)是左上角

 当你下移或右移时,坐标值增加

 允许元素重叠(但是不推荐)

 注意:

 一般建议不使用AbsoluteLayout 除非你有很好的理由来使用它

 因为它相当严格并且在不同的设备显示中不能很好地工作

RelativeLayout

 让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象

如果不喜欢Eclipse IDE自带的UI设计工具,可以使用免费Android UI设计软件DroidDraw,下载DroidDraw。

Android SDK的 ApiDemo中也介绍Android提供的各个UI组件(Menu,Dialog,TextView,Button,List等以及各个Layout)的用法。这里就不一一介绍了。

责任编辑:闫佳明 来源: imobilebbs
相关推荐

2013-12-26 15:10:08

Android开发应用和框架Linux 内核

2013-12-26 15:43:07

Android开发Android应用Activities

2013-12-26 15:18:09

Android开发安装开发环境

2011-05-19 08:49:01

使用片段界面设计Android

2011-04-22 11:01:36

框架布局界面设计Android

2011-04-08 13:58:10

Android界面设计

2011-04-11 17:25:30

线性布局用户界面设计Android

2011-04-11 17:07:33

布局基础用户界面设计Android

2011-04-19 09:19:37

相对布局界面设计Android

2013-12-27 14:05:22

Android开发Android应用Dialog

2013-12-27 14:16:43

Android开发Android应用线程

2013-12-27 14:34:46

Android开发Android应用短信触发示例

2011-06-01 10:58:57

2013-12-27 16:06:10

Android开发Android应用发布应用

2013-12-27 13:27:05

Android开发Android应用RadioButton

2013-12-26 15:34:19

Android开发Android应用基本概念

2013-12-27 13:49:22

Android开发Android应用Button

2013-12-27 12:51:44

Android开发Android应用引路蜂

2013-12-26 16:59:12

Android开发Android应用数据绑定Data Bi

2013-12-26 16:24:13

Android开发Android应用Intents
点赞
收藏

51CTO技术栈公众号