Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3964919
  • 博文数量: 366
  • 博客积分: 9916
  • 博客等级: 中将
  • 技术积分: 7195
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-29 23:27
个人简介

简单!

文章分类

全部博文(366)

文章存档

2013年(51)

2012年(269)

2011年(46)

分类: 嵌入式

2012-09-30 11:32:27

1、线性布局

线性布局由LinearLayout类来代表,它将容器里面的组件一个挨着一个地排列起来。LinearLayout不仅可以控制各组件横向排列(通过设置android:orientation属性控制),也可以控制各组件纵向排列。

LInearLayout不会换行,当组件一个挨着一个排列到头之后,剩下的组件将不会被显示。

LInearLayout常用XML属性及相关方法:

Xml属性

相关方法

说明

android:gravity

setGravity(int)

设置布局管理器内组件的对齐方式。支持top、bottom、left、right、center_vertical、 fill_vertical、center_horizontal、fill_horizontal、center、fill、 clip_vertical、clip_horizontal几个属性值。可以同时指定多种对齐方式,如left|center_vertical表示出 现在屏幕左边,并且垂直居中。

android:orientation

setOrientation(int)

设置布局管理器内组件的排列方式,可设置为horizontal(水平排列)、vertical(垂直排列),但只能是其中之一。

 说明:android:gravity属性中的多个属性值之间用竖线隔开,但竖线前后千万不能出现空格

 

2、表格布局

表格布局有TableLayout代表,表格布局采用行、列的形式来管理UI组件。

每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它也可以添加其他组件,没增加一个子组件该表格就增加一列。

如果直接向TableLayout中添加组件,那么这个组件将直接占用一行。

表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格布局的宽度取决于父容器的宽度(默认总是占满父容器本身)。

TableLayout的常用XML属性及相关方法

XMl属性

相关方法

说明

android:collapseColumns setCollapseColumns(int,boolean) 设置需要被隐藏的列序号,多个序号之间用逗号隔开
android:shrinkColumns setShrinkAllColumns(boolean) 设置允许被收缩的列序号,多个序号之间用逗号隔开
android:stretchColumns setStretchAllColumns(boolean) 设置允许被拉伸的列序号,多个序号之间用逗号隔开


3、帧布局

帧布局由Framelayout所代表,FrameLayout直接继承了ViewGroup组件。

帧布局容器为每个加入其中的组件创建一个空白区域(称为一帧),多有每个子组件占据一帧,这些帧都会跟据gravity属性执行自动对齐。

FrameLayout的常用XML属性及相关方法:

XML属性

相关方法

说明

android:foreground setForeground(Drawable) 设置帧布局容器的前景图像
android:foregroundGravity setForegroundGravity(int) 定义绘制前景图像的gravity属性

 

4、相对布局

相对布局由RelativeLayout代表,相对布局内子组件的位置总是相对兄弟组件、父容器来决定。如果A组件的位置由B组件位置来决定,Android要先定义B组件,再定义A组件。

RelativeLayout的XML属性及相关方法:

XML属性

相关方法

说明

android:gravit setGravity(int) 设置该布局容器内各子组件的对齐方式
android:ignoreGravity setIgnoreGravity(int) 设置哪个组件不受Gravity组件的影响

为控制布局容器中子组件的布局分布,RelativeLayout提供了一个内部类RelativeLayout.LayoutParams,该类提供了大量的XML属性来控制RelativeLayout布局容器中子组件的布局分布。

RelativeLayout.LayoutParams里只能设为boolean值的属性如下:

属性

说明

android:layout_centerHorizontal 控制子组件是否位于布局容器的水平居中位置
android:layout_centerVertical 控制子组件是否位于布局容器的垂直居中位置
android:layout_centerInParent 控制子组件是否位于布局容器的中央位置
android:layout_alignParentBottom 控制子组件是否与布局容器底端对齐
android:layout_alignParentLeft 控制子组件是否与布局容器左边对齐

android:layout_alignParentRight

控制子组件是否与布局容器右边对齐
android:layout_alignParentTop 控制子组件是否与布局容器顶端对齐

RelativeLayout.LayoutParams里属性值为其它UI组件ID的XML属性如下:

属性 说明
android:layout_toRightOf 控制该子组件位于给出ID组件的右侧
android:layout_toLeftOf 控制该子组件位于给出ID组件的左侧
android:layout_above 控制该子组件位于给出ID组件的上方
android:layout_below 控制该子组件位于给出ID组件的下方
android:layout_alignTop 控制该子组件跟给出ID组件的上边界对齐
android:layout_alignBottom 控制该子组件跟给出ID组件的下边界对齐
android:layout_alignLeft 控制该子组件跟给出ID组件的左边界对齐
android:layout_alignRight 控制该子组件跟给出ID组件的右边界对齐


5、绝对布局

绝对布局由AbsoluteLayout代表。此布局不提供任何布局控制,而是由开发人员自己通过X、Y坐标来控制组件的位置,当使用AbsoluteLayout作为布局容器时,布局容器不在管理子组件的位置、大小--由开发人员自己控制。

使用绝对布局,每个子组件都可以指定如下两个XML属性:

layout_X:指定子组件的X坐标

layout_Y:指定子组件的Y坐标

注意:大部分时候,使用绝对布局都不是一个好思路,因为手机千差万别,屏幕、分辨率可能存在较大差异,使用绝对布局很难兼顾不同屏幕大小、分表率问题。

Android中一般支持如下一些距离单位:

px(像素):每个px对应屏幕上的一个点。

dip或dp(设备独立像素):一种基于屏幕密度的抽象单位,在每英寸160点的显示器上,1dip=1px,但随着屏幕密度的改变,dip和px的换算也发生改变。

sp(比例像素):主要处理字体的大小,可以根据用户的字体大小首选项进行缩放。

in(英寸):标准长度单位。

mm(毫米):标准长度单位。

pt(磅):标准长度单位,1/72英寸。

阅读(3912) | 评论(0) | 转发(0) |
0

上一篇:Java反射

下一篇:Android开发环境的搭建

给主人留下些什么吧!~~