Android 资源类型完整清单 + 布局资源 4 种常用类型详解
Android 资源(Resources)是非代码形式的静态内容(图片、文字、布局、样式等),统一放在 res/ 目录下,按类型分文件夹管理,方便国际化、多设备适配和代码解耦。
一、Android 全资源类型完整列举
Android 官方定义的标准资源类型共 16 种,对应 res/ 下的标准文件夹,作用和用途如下:
表格
| 资源文件夹 | 资源类型 | 核心用途 |
|---|---|---|
res/drawable/ | 图片 / 矢量资源 | 存放位图(png/jpg)、矢量图(xml)、形状 Drawable |
res/layout/ | 布局资源 | 定义界面的控件排列、层级结构 |
res/values/ | 值资源 | 字符串、颜色、尺寸、样式、数组、整数等 |
res/mipmap/ | 启动图标 | 专用于 APP 启动图标(适配不同屏幕密度) |
res/anim/ | 帧动画 | 逐帧播放的动画资源 |
res/animator/ | 属性动画 | 3.0+ 推荐的属性动画(平移、缩放、旋转等) |
res/color/ | 颜色状态列表 | 按钮按下 / 选中 / 禁用的颜色切换 |
res/dimen/ | 尺寸资源 | 统一管理间距、字体大小、控件宽高 |
res/font/ | 字体资源 | 自定义 TTF/OTF 字体 |
res/raw/ | 原始文件 | 存放音频、视频、文本等原生文件(不编译) |
res/xml/ | 自定义 XML | 配置文件、数据解析、自定义功能资源 |
res/menu/ | 菜单资源 | 选项菜单、上下文菜单、弹出菜单 |
res/interpolator/ | 插值器 | 控制动画速度变化(匀速、加速、回弹等) |
res/transition/ | 过渡动画 | Activity/Fragment 切换的过渡效果 |
res/navigation/ | 导航资源 | Jetpack Navigation 组件的页面路由 |
res/assets/ | 原生资源 | 非编译原生资源(无固定结构,可自定义目录) |
二、布局资源(Layout)4 种常用类型详解
布局资源 是 Android 开发最核心的资源,作用是定义界面中所有控件(TextView/Button/ImageView 等)的位置、大小、层级关系,文件格式为 .xml,存放在 res/layout/ 目录下。
Android 布局的核心设计思想:容器(布局)+ 子控件,通过嵌套实现复杂界面。
1. LinearLayout(线性布局)
核心特性
- 最基础、最常用的布局,子控件按「水平 / 垂直」方向线性排列
- 自带权重(
layout_weight)属性,完美实现等比例划分屏幕 - 优点:简单易用、性能高;缺点:复杂嵌套时效率低
关键属性
-
android:orientation:排列方向vertical:垂直排列(从上到下)horizontal:水平排列(从左到右)
-
android:layout_weight:权重(仅线性布局支持)- 按比例分配剩余空间,实现自适应布局
-
android:gravity:子控件对齐方式
2. RelativeLayout(相对布局)
核心特性
- 子控件以「相对位置」排列(相对于父布局、相对于其他控件)
- 无需嵌套,一个布局就能实现复杂界面
- 优点:灵活、减少布局嵌套;缺点:属性多、逻辑稍复杂
关键属性
-
相对于父布局
android:layout_centerInParent:居中android:layout_alignParentTop:顶部对齐android:layout_alignParentRight:右侧对齐
-
相对于其他控件(需指定控件 id)
android:layout_below:在某控件下方android:layout_toRightOf:在某控件右侧android:layout_alignTop:与某控件顶部对齐
3. ConstraintLayout(约束布局)
核心特性
- Android 官方推荐的首选布局(替代所有嵌套布局)
- 基于约束条件定位控件(上下左右对齐、居中、比例、链状布局)
- 优点:零嵌套实现复杂界面、性能极高、支持可视化拖拽编辑
- 适用于:所有商业项目、复杂 UI 界面
关键属性
-
基础约束(必须设置,否则控件会重叠在左上角)
app:layout_constraintTop_toTopOf:顶部对齐app:layout_constraintBottom_toBottomOf:底部对齐app:layout_constraintStart_toStartOf:左侧对齐app:layout_constraintEnd_toEndOf:右侧对齐
-
高级功能
- 比例布局:
app:layout_constraintDimensionRatio - 链布局:多个控件平均分布
- 辅助线(Guideline):快速对齐
- 比例布局:
4. FrameLayout(帧布局)
核心特性
- 最简单的布局,所有子控件默认叠加在左上角
- 后添加的控件会覆盖在先添加的控件之上(层级关系)
- 优点:性能最高、轻量;缺点:仅适合叠加场景
常用场景
- Fragment 容器
- 图片叠加文字(如头像右上角未读消息)
- 加载动画、遮罩层
关键属性
android:gravity:控制子控件的对齐方式(居中、底部等)
三、4 种常用布局对比总结
表格
| 布局名称 | 排列方式 | 核心优势 | 最佳使用场景 |
|---|---|---|---|
| LinearLayout | 水平 / 垂直线性 | 简单、权重适配 | 表单、列表、等比例控件 |
| RelativeLayout | 相对位置 | 灵活、少嵌套 | 中等复杂度 UI |
| ConstraintLayout | 约束定位 | 零嵌套、高性能、官方首选 | 所有项目、复杂 UI |
| FrameLayout | 叠加层叠 | 性能最高、极简 | 容器、叠加控件、Fragment |
开发建议:日常开发优先使用 ConstraintLayout,简单线性排列用 LinearLayout,叠加效果用 FrameLayout。
总结
- Android 标准资源共 16 种,核心是
layout(布局)、drawable(图片)、values(值)、mipmap(图标); - 布局资源是界面骨架,4 种常用类型:线性、相对、约束、帧布局;
- ConstraintLayout 是现代 Android 开发首选布局,能大幅优化界面性能和开发效率。