安卓应用在用户面前所呈现出来的就是一个布局方式。
一、页面布局概述
1、界面布局(Layout)是用户界面结构的描述,定义了界面中所有的元素、结构和相互关系
2、声明Android程序的界面布局有两种方法
1)、使用XML文件描述界面布局
2)、在程序运行时动态添加或修改界面布局
3、用户既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种方式
4、使用XML文件声明界面布局的特点
将程序的表现层和控制层分离
在后期修改用户界面时,无需更改程序的源代码
用户还能够通过可视化工具直接看到所设计的用户界面,有利于加快界面设计的过程,并且为界面设计与开发带来极大的便利性
二、布局类型
1、线性布局
- 线性布局(LinearLayout)是一种重要的界面布局中,也是经常使用到的一种界面布局
- 在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列(orientation属性控制)
- 如果垂直(vertical)排列,则每行仅包含一个界面元素
- 如果水平(horizonal)排列,则每列仅包含一个界面元素
layout_weight 属性控制水平上多个组件占用比例。
2、框架布局
- 框架布局(FrameLayout)是最简单的界面布局,是用来存放一个元素的空白空间,且子元素的位置是不能够指定的,只能够放置在空白空间的左上角
- 如果有多个子元素,后放置的子元素将遮挡先放置的子元素。重复覆盖专用布局
layout_gravity属性来调整位置
不设置XML文件可以动态书写布局
3、表格布局
- 表格布局(TableLayout)也是一种常用的界面布局,它将屏幕划分网格,通过指定行和列可以将界面元素添加的网格中
- 网格的边界对用户是不可见的
- 表格布局还支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局中添加其他界面布局,例如线性布局、相对布局等等
- 使用
<TableRow>
建立一行,再在行上建立不同的控件
layout_column 属性所在列从0 开始
layout_span 属性跨多少列
shrinkColumns 属性收缩的列
stretchColumns属性拉伸的列
4、相对布局
- 相对布局(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的相对位置关系,确定界面中所有元素的布局位置
- 特点:能够最大程度保证在各种屏幕类型的手机上正确显示界面布局
above,below:上,下,ID
alignBottom: 对齐,ID
alignLeft:对齐,ID
alignRight:对齐,ID
alignTop:对齐,ID
alignParentBottom:对齐,BOOLEAN
alignParentLeft对齐,BOOLEAN
alignParentRight对齐,BOOLEAN
alignParentTop对齐,BOOLEAN
centerInParent居中, BOOLEAN
centerHorizontal居中, BOOLEAN
centerVertical居中,BOOLEAN
toRightOf,toLeftOf:左,右,ID
5、绝对布局
- 绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的整体布局
- 绝对布局是一种不推荐使用的界面布局,因为通过X轴和Y轴确定界面元素位置后,Android系统不能够根据不同屏幕对界面元素的位置进行调整,降低了界面布局对不同类型和尺寸屏幕的适应能力