布局管理器 本讲大纲: 1、线性布局 2、表格布局 3、帧布局 4、相对布局 5、范例1:使用表格布局与线性布局实现分类工具栏 6、范例2:布局个性游戏开始界面 支持网站:www.mrbccd.com
线性布局 线性布局是将放入其中的组件按照垂直或水平方向来布局,也就是控制放入其中的组件横向排列或纵向排列。在线性布局中,每一行(针对垂直排列)或每一列(针对水平排列)中只能放一个组件。并且Android的线性布局不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。 在Android中,可以在XML布局文件中定义线性布局管理器,也可以使用Java代码来创建。推荐使用在XML布局文件中定义线性布局管理器。在XML布局文件中定义线性布局管理器,需要使用<LinearLayout>标记,其基本的语法格式如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 属性列表 > </LinearLayout>
表格布局 表格布局与常见的表格类似,它以行、列的形式来管理放入其中的UI组件。表格布局使用<TableLayout>标记定义,在表格布局中,可以添加多个<TableRow>标记,每个<TableRow>标记占用一行,由于<TableRow>标记也是容器,所以在该标记中还可添加其他组件,在<TableRow>标记中,每添加一个组件,表格就会增加一列。在表格布局中,列可以被隐藏,也可以被设置为伸展的,从而填充可利用的屏幕空间,也可以设置为强制收缩,直到表格匹配屏幕大小。
表格布局 在XML布局文件中定义表格布局管理器的基本的语法格式如下: <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 属性列表 > <TableRow 属性列表> 需要添加的UI组件 </TableRow> 多个<TableRow> </TableLayout> XML属性 描述 android:collapseColumns 设置需要被隐藏的列的列序号(序号从0开始),多个列序号之间用逗号“,”分隔 android:shrinkColumns 设置允许被收缩的列的列序号(序号从0开始),多个列序号之间用逗号“,”分隔 android:stretchColumns 设置允许被拉伸的列的列序号(序号从0开始),多个列序号之间用逗号“,”分隔
帧布局 在帧布局管理器中,每加入一个组件,都将创建一个空白的区域,通常称为一帧,这些帧都会根据gravity属性执行自动对齐。默认情况下,帧布局是从屏幕的左上角(0,0)坐标点开始布局,多个组件层叠排序,后面的组件覆盖前面的组件。 在XML布局文件中,定义帧布局管理器可以使用<FrameLayout>标记,其基本的语法格式如下: < FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 属性列表 > </ FrameLayout> XML属性 描述 android:foreground 设置该帧布局容器的前景图像 android:foregroundGravity 定义绘制前景图像的gravity属性,也就是前景图像显示的位置
相对布局 相对布局是指按照组件之间的相对位置来进行布局,如某个组件在另一个组件的左边、右边、上方或下方等。 在XML布局文件中,定义相对布局管理器可以使用<RelativeLayout>标记,其基本的语法格式如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 属性列表 > </RelativeLayout> XML属性 描述 android:gravity 用于设置布局管理器中各子组件的对齐方式 android:ignoreGravity 用于指定哪个组件不受gravity属性的影响
相对布局 RelativeLayout.LayoutParams支持的常用XML属性如下表所示。 XML属性 描述 android:layout_above 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的上方 android:layout_alignBottom 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的下边界对齐 android:layout_alignLeft 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的左边界对齐 android:layout_alignParentBottom 其属性值为boolean值,用于指定该组件是否与布局管理器底端对齐 android:layout_alignParentLeft 其属性值为boolean值,用于指定该组件是否与布局管理器左边对齐 android:layout_alignParentRight 其属性值为boolean值,用于指定该组件是否与布局管理器右边对齐 android:layout_alignParentTop 其属性值为boolean值,用于指定该组件是否与布局管理器顶端对齐 android:layout_alignRight 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的右边界对齐 android:layout_alignTop 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的上边界对齐 android:layout_below 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的下方 android:layout_centerHorizontal 其属性值为boolean值,用于指定该组件是否位于布局管理器水平居中的位置 android:layout_centerInParent 其属性值为boolean值,用于指定该组件是否位于布局管理器的中央位置 android:layout_centerVertical 其属性值为boolean值,用于指定该组件是否位于布局管理器垂直居中的位置 android:layout_toLeftOf 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的左侧 android:layout_toRightOf 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的右侧
范例1:使用表格布局与线性布局实现分类工具栏 在Eclipse中创建Android项目,应用表格布局和线性布局分类显示快捷工具栏。
范例2:布局个性游戏开始界面 在Eclipse中创建Android项目,应用线性布局和相对布局实现个性游戏开始界面。
Thank you 还有什么疑问可以到www.mrbccd.com提出 也可以以发送邮件到 mingrisoft@mingrisoft.com