UI设计中使用XML(类XML)语言描述是一大趋势.AS中的界面UI部分是类XML,微软的WPF和Silverlight也采用类XML语言,当然在网页上的XHTML更是XML大应用了.或许由于Google是互联起家的缘故,所以在Android的界面布局中到处可以看到网页布局的影子.当你看到findViewById是否会想去js中经常用到的document.getElementById呢?当你用LinearLayout/RelativeLayout/TableLayou布局是否会想起网页中DIV+CSS和经典的Table布局呢?
下面简单介绍Android的几个重要布局
1,LinearLayout
LinearLayout是一种流水线型的布局方式.它可以通过orientation属性设置线性排列的方向是垂直(vertical)还是纵向(horizontal).
两种布局示意图

2,RelativeLayout
RelativeLayout(相对布局)是一种非常灵活的布局方式,几乎没有见过可能是Android独创的.这个布局的一个要点是里面的控件可以指定其上下左右对齐的控件.所以在要设置诸如:layout_alignBottom,layout_toRightOf等等属性.
一些常用到属性的描述:
layout_toRightOf / layout_toLeftOf --紧凑右边/左边控件.属性值指定控件id
layout_alignTop /layout_alignBottom / layout_alignRight/ layout_alignLeft --顶端/底部/右边/左边对齐的控件
layout_above --紧凑其上的控件.属性值指定控件id
layout_alignParentTop/ layout_alignParentBottom --是否贴近父容器的顶部/底部
layout_alignParentRight/layout_alignParentLeft --是否贴近父容器的右边/左边
RelativeLayout布局示意图下

3,AbsoluteLayout
绝对布局是UI布局中应用的最广的布局方式,就是指定控件的X/Y坐标使控件固定在一个点上.Windows开发的程序员几乎都是这种布局方式.不过这种布局在手机开发中有很大的弊病,因为不同的手机类型的屏幕尺寸可能是不尽相同的,这也是j2me在做不同手机开发时非常头痛的地方.
Andorid的控件描述X/Y坐标的属性是:layout_x,layout_y.
X/Y坐标的计量单位在Android有以下几种:
px:像素
dip:依赖设备的像素.这个是android独创.
sp:比例像素
pt:点
in:英尺
mm:毫米
AbsoluteLayout布局示意图

4,TableLayout
Table布局在网页设计中是一种非常常见的布局方式.不过Android的TableLayout与网页中的table布局并不相同.以下是TableLayout布局中几个重要的属性和对象
collpaseColumns --隐藏TableLayout里TableRow的列X
stretchColumns -- 设置列X为可伸展列
shrinkColumns -- 设置列X为可收缩列
TableRow -- 行对象
TableLayout示意图
