Android的布局
Android的UI组件控制分为用xml文件控制,直接用java代码控制,以及用xml文件和java代码混合控制。一般把变化比较小,行为比较固定的组件用xml文件控制,而变化比较大,行为比较复杂的组件用java代码来控制。适用xml文件和java代码一起控制UI组件可以使得界面控制很精细,很酷炫。
xml文件一般写在Android应用程序的res/layout文件夹中,任何符合Java编程规范的文件命名皆可。Amdroid布局大致分为线性布局,表格布局,帧布局,相对布局(其实还有个绝对布局,适用坐标点直接精确定位组件位置,但是对于安卓机大小多变的屏幕,绝对布局的适应性较差,不同屏幕大小的组件的显示位置可能显示不同,非常难调整,目前已经过时了)。
-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------
1.线性布局(LinearLayout)
线性布局把组件按照水平,垂直方向放置,也就是控制放入其中的组件横向排列或纵向排列。在线性布局中,每一行(针对垂直排列)或每一列(针对水平排列)中只能放一个组件。并且Android的线性布局不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。
在Android中,可以在XML布局文件中定义线性布局管理器,也可以使用Java代码来创建。推荐使用在XML布局文件中定义线性布局管理器。在XML布局文件中定义线性布局管理器,需要使用<LinearLayout>标记,其基本的语法格式如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性列表
>
</LinearLayout>
-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------
2.表格布局(TableLayout)
表格布局用行和列来管理放入的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开始),多个列序号之间用逗号“,”分隔 |
-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------
3.帧布局(FrameLayout)
在帧布局中,增加一个组件容器中会创建一个空白的区域,通常称为一帧,
这些帧都会根据gravity属性执行自动对齐。默认情况下,帧布局是从屏幕的左上角(0,0)坐标点开始布局,多个组件层叠排序,后面的组件覆盖前面的组件。
在XML布局文件中,定义帧布局管理器可以使用<FrameLayout>标记,其基本的语法格式如下:
< FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性列表
>
</ FrameLayout>
帧布局可以控制组件的对其方式,属性如下:
|
XML属性 |
描述 |
|
android:foreground |
设置该帧布局容器的前景图像 |
|
android:foregroundGravity |
定义绘制前景图像的gravity属性,也就是前景图像显示的位置 |
-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------
4.相对布局(RelativeLayout)
相对布局是指按照组件之间的相对位置来进行布局,如某个组件在另一个组件的左边、右边、上方或下方等。
在XML布局文件中,定义相对布局管理器可以使用<RelativeLayout>标记,其基本的语法格式如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性列表
>
</RelativeLayout>
|
XML属性 |
描述 |
|
android:gravity |
用于设置布局管理器中各子组件的对齐方式 |
|
android:ignoreGravity |
用于指定哪个组件不受gravity属性的影响 |
RelativeLayout.LayoutParams支持的常用XML属性如下表所示。
|
XML属性 |
描述 |
||||||||||||||||||||||||||||||||
|
android:gravity |
用于设置布局管理器中各子组件的对齐方式 |
||||||||||||||||||||||||||||||||
|
android:ignoreGravity |
用于指定哪个组件不受gravity属性的影响
|
-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------
混合使用多种布局方式便可以达到较为复杂的图形化界面效果,如使用线性布局和相对布局实现游戏的开始界面

用线性布局和表格布局实现Android快捷功能的显示

浙公网安备 33010602011771号