布局资源有四种常用类型
布局的通用属性:
- android:id 设置当前布局的唯一标识
- android:layout_width 设置当前布局的宽度
- android:layout_height 设置当前布局的高度
- android:background 设置当前布局的背景
- android:layout_margin 设置当前布局与屏幕边界、周围布局和控件的距离
- android:padding 设置当前布局与该布局中控件的距离
线性布局(LinearLayout)
在xml布局文件中定义LinearLayout的基本语法格式如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性 ="属性值"
······>
</LinearLayout>
1. android:orientation
用于设置LinearLayout内控件的排列顺序,可选值vertical and horizontal。 vertical:控件从上到下依次垂直排列 horizontal:控件从左到右依次水平排列
2. android:layout_weight
该属性表示权重,通过该属性值,可使布局内的控件按照权重比显示大小。
从图片可以看出,三个按钮呈现水平方式排列,并且宽度在水平方向上的权重比为1:1:2。
相对布局(RelativeLayout)
通过相对定位的方式指定子控件的相对位置。在xml布局文件中定义RelativeLayout的基本语法格式如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性 ="属性值"
······>
</RelativeLayout>
- 在早期 Android 开发中,RelativeLayout 常被用来替代多层嵌套的 LinearLayout,从而减少视图层级,提高绘制效率。
- 如今官方更推荐使用 ConstraintLayout,因为它提供了更强大的约束系统、更扁平的结构,且与可视化编辑器结合更好。
从图片可以看出,三个按钮并不是简单地上下或左右排列,而是呈现出一种“相对定位”的效果——例如先定义按钮1在底部靠左的位置,按钮2相对于1在上面靠右一点的距离。同理按钮3也一样。
表格布局(TableLayout)
通过在表格中添加TableRow布局或控件来控制表格的行数,在TableRow布局中添加控件来控制表格列数。在xml布局文件中定义TableLayout的基本语法格式如下:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性 ="属性值">
<TableRow>
UI控件
······
</TableRow>
</TableLayout>
从图片可以看出,这是一个3行3列的表格,5个按钮按照这种形式进行排列。先通过android:stretchColumns属性设置TableLayout的第3列可拉伸,button控件通过android:layout_column属性指定当前控件位于第几列。
帧布局(FrameLayout)
帧布局用于在屏幕上创建一块空白区域,放置到该区域中的每个子控件占一帧,这些帧会一个一个地叠加在一起,后放置的控件会叠加在先放置的控件上层。在xml布局文件中定义FrameLayout的基本语法格式如下:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性 ="属性值">
</FrameLayout>
有两个特殊属性:
- android:foreground 设置FrameLayout容器的前景图像
- android:foregroundGravity 设置前景图像显示的位置
从图片中可以看出,这是个霓虹灯界面,就是设置5个Button控件分别用于显示5个按钮,设置适合的宽度和高度,然后背景设置不同颜色就成了。