Activity是Android应用程序用户界面的基本组件。但是Activity本身并不提供用户界面(UserInterface)。从程序结构层面来说,一个Android应用是类android.app.Application的一个实例,一个Application可以包含多个android.app.Activity实例。每个Activity都有一个Window类。这个类在Android平台上并没有提供太多的功能。它主要用于控制标题栏(屏幕顶部)。例如,可以使用如下代码设置UI全屏显示:Activty默认不包含用户界面,如果需要显示用户界面,可以调用setContentView()设置Activity的ContentView。ConentView描述了特定的UI组件,例如文本框、标签、列表框和图片框。Android的用户界面其实就是参考了ContentView的设计。“视图”一开始可能会产生误导。在其他平台上,“View”一般是指一个类似于Form的概念。在Android平台上,View是一个UI组件,相当于其他平台上的Component,ViewGroup相当于其他平台上的Container,如下图所示:有了这个对应关系,就很容易套用你现有的用户界面设计知识到Android的用户界面设计上来。另外,Android用户界面设计的一个推荐方法是使用XML来描述UI。这并不是Android平台的首创。JavaMEPolish、WPF、Silverlight等都使用XML来描述UI。使用XML来描述的好处是用户界面和程序逻辑是分离的,这样用户界面的改变不影响程序逻辑,程序逻辑的改变不影响用户界面。其实就是采用了MVC模式的设计。Activity就是MVC中的Controller,Activity的ContentView就是MVC中的View。如果不想用XML来描述UI,也可以用代码来创建UI,但是这种方法比较麻烦,而且增加了模块之间的耦合度。了解了Android的View和ViewGroup之后,设计用户界面就不复杂了。一般来说,ViewGroup定义了它的子View,即用户界面中的其他View(文本框、标签和其他控件或其他ViewGroup)的布局。地点安排。如上所示,这种层级关系是可以嵌套的。通过嵌套,您可以定义任意用户界面。Android中的基本布局如下:FrameLayout最简单的布局对象屏幕上特意保留了一块空白,后面可以用单独的对象填充例如:一张要替换的图片所有子元素都固定在上面屏幕左上角不能为子元素指定位置LinearLayout将所有子元素沿一个方向(垂直或水平)对齐所有子元素一个接一个堆叠垂直列表每行只有一个子元素(无论它们多宽are)水平列表只是一列的高度(***填充子元素的高度)TableLayout将子元素放入行和列中,不显示行、列或单元格边界线单元格不能跨越行,如HTML中的AbsoluteLayout使子元素能够指定精确显示在屏幕上的X/Y坐标(0,0)是左上角。当您向下或向右移动时,坐标值会增加以允许元素重叠(但不推荐)。注意:通常建议不要使用AbsoluteLayout除非你有充分的理由使用它,因为它相当严格并且不能很好地跨不同的设备显示RelativeLayout允许子元素指定它们相对于其他元素的位置(通过ID)或relative到父布局对象有了UI设计工具,可以使用免费的AndroidUI设计软件DroidDraw,下载DroidDraw。AndroidSDK的ApiDemo也介绍了Android提供的各个UI组件(Menu、Dialog、TextView、Button、List等,以及各个Layout)的使用方法。这里就不一一介绍了。
