在 Android 开发中,布局资源是定义 UI 界面结构的核心,它决定了控件在屏幕上的摆放方式、大小与层级。本次作业基于群内 Chapter2 文件夹下的 4 个实战项目,全面讲解 Android 布局资源的四大常用类型,同时附上每个项目的运行结果截图,帮助大家快速掌握布局的核心用法与实际应用场景。
一、Android 布局资源总览
Android 布局资源统一存放在项目 res/layout/ 目录下,以 XML 文件形式编写,不同布局类型对应不同的界面排列逻辑。本次作业的 4 个项目分别对应四大核心布局:LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局,对应 NeonLamp 项目)、TableLayout(表格布局) ,也是 Android 开发中最基础、最高频使用的布局类型。
二、四大布局资源详解(附项目运行结果)
1. LinearLayout(线性布局)
核心特点
线性布局是 Android 中最基础、最易用的布局,子控件会沿着 ** 水平(horizontal)或垂直(vertical)** 方向依次线性排列,子控件之间不会重叠,逻辑清晰,适合规则排列的简单界面。
核心属性
| 属性名 | 作用说明 | 常用取值 | |
|---|---|---|---|
android:orientation | 控制子控件排列方向 | vertical(垂直,默认)、horizontal(水平) | |
android:layout_weight | 子控件权重,按比例分配父布局剩余空间 | 数值越大,占比越高(配合 layout_width/height 为 0dp 效果最佳) | |
android:gravity | 布局内所有子控件的对齐方式 | center、left、right、center_horizontal 等 |
项目运行结果
本次作业的 LinearLayout 项目,通过水平方向排列实现了 3 个按钮的横向分布,界面效果如下:
适用场景
适合简单的线性排列界面,如登录表单、按钮组、列表项、顶部 / 底部导航栏等,是入门级开发的首选布局。
2. FrameLayout(帧布局)
核心特点
帧布局是 Android 中最简单、最轻量的布局,所有子控件默认堆叠在布局的左上角,后添加的子控件会覆盖在前一个控件之上,形成 “层叠” 效果。适合展示单一内容或需要层级叠加的场景。
核心属性
| 属性名 | 作用说明 | 常用取值 | ||
|---|---|---|---|---|
android:layout_gravity | 子控件在帧布局中的对齐方式 | center、`bottom | right、top | left` 等,控制子控件位置 |
android:foreground | 设置布局前景图像,覆盖在所有子控件上方 | 引用 Drawable 资源 |
项目运行结果
本次作业的 NeonLamp 项目(对应 FrameLayout 布局),通过多层子控件的层叠实现了红 - 绿 - 蓝 - 红 - 灰的同心矩形霓虹灯效果,完美体现了帧布局的层叠特性,界面效果如下:
适用场景
适合 Fragment 容器、闪屏页、引导页、悬浮按钮 / 角标、视频播放界面等需要层叠效果的场景,是轻量级层叠布局的首选。
3. RelativeLayout(相对布局)
核心特点
相对布局的核心是 “相对定位” ,子控件的位置不再受固定方向限制,而是通过相对于父布局或**相对于其他子控件 ** 的位置关系来确定,灵活性极强,可大幅减少布局嵌套,提升 UI 性能。
核心属性
相对布局属性分为三类,核心用法如下:
| 分类 | 属性名 | 作用说明 | 示例 |
|---|---|---|---|
| 相对于父布局 | android:layout_centerInParent | 子控件在父布局中居中(水平 + 垂直) | 常用作居中控件的核心属性 |
android:layout_alignParentTop | 子控件顶部与父布局顶部对齐 | 顶部悬浮控件 | |
| 相对于其他控件 | android:layout_below | 子控件位于目标控件下方 | android:layout_below="@id/btn1" |
android:layout_toRightOf | 子控件位于目标控件右侧 | android:layout_toRightOf="@id/btn1" | |
| 对齐属性 | android:layout_alignBottom | 子控件底部与目标控件底部对齐 | 保证控件底部对齐 |
项目运行结果
本次作业的 RelativeLayout 项目,通过相对定位实现了 3 个按钮的垂直错落排列(按钮 2 在按钮 1 上方偏右,按钮 3 在按钮 2 上方偏右),直观体现了相对布局的灵活定位特性,界面效果如下:
适用场景
适合非规则排列的复杂界面,如个人中心、商品详情页、首页头部布局等,是实现复杂 UI without 多层嵌套的核心布局。
4. TableLayout(表格布局)
核心特点
表格布局是 LinearLayout 的子类,专门用于实现表格形式的行列排列,结构与 HTML 的 <table> 标签类似,通过 TableRow 定义行,每个 TableRow 中的子控件对应一个单元格,行列对齐逻辑清晰。
核心规则与属性
行数由 TableRow 数量决定,列数由列数最多的 TableRow 决定;
核心属性:
| 属性名 | 作用说明 | 常用取值 |
|---|---|---|
| android:stretchColumns | 设置可拉伸的列,自动填满剩余空间 | 列序号(从 0 开始),* 代表所有列 |
| android:layout_span | 子控件跨越的列数(类似 HTML 的 colspan) | 数值,默认 1 |
项目运行结果
本次作业的 TableLayout 项目,通过 TableRow 定义了多行多列的按钮布局,实现了按钮的表格化排列,界面效果如下:
适用场景
适合数据报表、订单列表、计算器键盘、设置项键值对、表单表格等规则行列排列的场景,是表格类 UI 实现的高效选择。
三、四大布局核心对比与选型总结
| 布局类型 | 核心优势 | 核心劣势 | 首选适用场景 |
|---|---|---|---|
| LinearLayout | 简单直观、权重适配方便、上手成本低 | 复杂界面需多层嵌套,性能略差 | 线性排列的简单界面、按钮组、表单 |
| RelativeLayout | 灵活性强、减少布局嵌套、性能较好 | 属性繁多、复杂相对关系维护成本高 | 非规则排列的复杂界面、个人中心、首页 |
| FrameLayout | 最轻量、适合层叠效果、使用简单 | 功能单一、无法实现复杂排列 | 层叠效果、Fragment 容器、闪屏页 |
| TableLayout | 行列对齐逻辑清晰、适合表格场景 | 灵活性有限、仅支持跨列(无跨行) | 数据报表、订单列表、计算器、表格布局 |
四、作业完成总结
本次作业已完成 Chapter2 文件夹下 4 个项目的运行与截图,同时结合项目实战详细讲解了 Android 布局资源的四大常用类型:
LinearLayout 适用于简单线性排列场景,基础且易用;
RelativeLayout 适用于复杂相对定位场景,灵活且减少嵌套;
FrameLayout 适用于层叠效果场景,轻量且高效;
TableLayout 适用于表格类场景,行列对齐逻辑清晰。
所有布局均为 Android 布局的核心基础,实际开发中可根据界面需求灵活组合使用,兼顾 UI 效果与性能。