一、Android 资源类型全列举
Android 资源是存放在 res/ 目录下的非代码文件(图片、布局、字符串、样式等),系统会自动生成对应 R 类索引,核心资源类型如下: 表格
| 资源目录 | 资源类型 | 作用 |
|---|---|---|
res/drawable/ |
图片 / 矢量资源 | 存放位图(png/jpg)、矢量图(xml)、形状资源 |
res/layout/ |
布局资源 | 定义界面结构、控件摆放规则 |
res/values/ |
值资源 | 字符串(strings.xml)、颜色(colors.xml)、尺寸(dimens.xml)、样式(styles.xml)、数组(arrays.xml) |
res/mipmap/ |
启动图标 | 存放不同分辨率的应用启动图标 |
res/anim/ |
补间动画 | 定义透明度、缩放、平移、旋转动画 |
res/animator/ |
属性动画 | 高级动画(控制控件属性、时长、插值器) |
res/menu/ |
菜单资源 | 定义选项菜单、上下文菜单、底部导航菜单 |
res/raw/ |
原生资源 | 存放音频、视频、文本等直接读取的文件 |
res/xml/ |
自定义 XML | 配置文件、数据解析文件 |
res/font/ |
字体资源 | 自定义 TTF/OTF 字体文件 |
二、布局资源 4 种常用类型(详细介绍)
布局资源(res/layout/*.xml)是 Android 最核心的资源,用于定义界面中控件的位置、大小、层级关系,以下是开发中最常用的 4 种布局:
1. LinearLayout(线性布局)
核心特点
- 最基础、最常用的布局,按水平 / 垂直方向依次排列子控件
- 子控件会按顺序排队,不会重叠
- 通过
orientation属性控制排列方向
关键属性
-
android:orientation:vertical:垂直排列(从上到下)horizontal:水平排列(从左到右)
-
android:layout_weight:权重,按比例分配剩余空间(实现自适应尺寸) -
android:gravity:子控件在布局内的对齐方式(居中、居左、居右等)
适用场景
- 简单的线性界面(登录表单、列表项、按钮横排)
- 需要按比例分配控件大小的场景
示例代码

2. RelativeLayout(相对布局)
核心特点
- 以子控件之间的相对位置 / 与父布局的相对位置定位
- 自由度极高,可实现复杂界面,减少布局嵌套
- 无需依赖排列方向,通过属性精准控制位置
关键属性
-
相对于父布局:
android:layout_centerInParent:居中android:layout_alignParentTop:顶部对齐android:layout_alignParentRight:右侧对齐
-
相对于其他控件:
android:layout_below:在某控件下方android:layout_toRightOf:在某控件右侧android:layout_alignTop:与某控件顶部对齐
适用场景
- 控件位置不规则的界面(个人中心、详情页、复杂表单)
- 需要减少嵌套、优化性能的场景
示例代码

3. TableLayout(表格布局)
核心特点采用行和列的表格形式排列控件,结构整齐规范继承自线性布局,默认垂直方向排列每一行使用 TableRow 包裹,内部控件自动成为一列列宽自动适配,整体对齐效果统一
关键属性android:stretchColumns:设置可拉伸的列,自动填满布局宽度android:shrinkColumns:设置可收缩的列,内容过长时自动压缩android:collapseColumns:隐藏指定列TableRow 内部控件无需设置宽高,自动按列排列
适用场景登录、注册类表单页面整齐对齐的信息展示页(个人资料、设置项)需要严格行列对齐的界面
示例代码

4. FrameLayout(帧布局)
核心特点
- 最简单的布局,所有子控件默认叠加在左上角
- 后添加的控件会覆盖在先添加的控件之上
- 无复杂定位属性,轻量、渲染速度极快
关键属性
android:layout_gravity:控制子控件在布局内的对齐(居中、居右等)- 无方向、无权重、无相对定位属性
适用场景
- 图层叠加(Fragment 容器、图片 + 文字遮罩、加载动画)
- 单一控件展示(头像、图标、卡片背景)
- 作为容器占位
示例代码

三、四种布局对比总结
表格
| 布局 | 定位方式 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|---|
| LinearLayout | 线性排列 | 简单易用、支持权重 | 复杂界面嵌套多、性能差 | 简单线性界面 |
| RelativeLayout | 相对位置 | 自由度高、减少嵌套 | 复杂约束易混乱、性能一般 | 中等复杂度界面 |
| TableLayout | 表格行列 | 自动对齐、适合表单 | 不够灵活、仅支持表格结构 | 表单、信息展示页 |
| FrameLayout | 图层叠加 | 最轻量、渲染最快 | 仅支持叠加 / 简单对齐 | 图层覆盖、容器占位 |