一、最常用的核心资源(开发必备)
这是日常开发中 90% 会用到的资源类型:
1. 布局资源 (Layout)
- 目录:
res/layout/ - 后缀:
.xml - 作用:定义界面结构(按钮、文本、列表等)
- 示例:
activity_main.xml
2. 图片 / 矢量资源 (Drawables)
- 目录:
res/drawable-*/、res/mipmap-*/ - 类型:位图(png/jpg)、矢量图(xml)、形状、选择器
- 作用:界面图标、背景、按钮状态
- 示例:
ic_launcher.xml、bg_button.xml
3. 字符串资源 (Strings)
-
目录:
res/values/strings.xml -
作用:存放文本,支持多语言适配
-
示例:
xml
<string name="app_name">我的应用</string>
4. 颜色资源 (Colors)
-
目录:
res/values/colors.xml -
作用:统一管理颜色值
-
示例:
xml
<color name="white">#FFFFFF</color>
5. 尺寸资源 (Dimensions)
-
目录:
res/values/dimens.xml -
单位:
dp(屏幕适配)、sp(文字)、px(像素) -
示例:
xml
<dimen name="padding_16">16dp</dimen>
6. 样式与主题 (Styles & Themes)
- 目录:
res/values/styles.xml、themes.xml - 作用:统一界面风格、字体、背景、状态栏样式
- 示例:App 全局主题、按钮样式
二、进阶常用资源
7. 数组资源 (Arrays)
- 目录:
res/values/arrays.xml - 作用:存放字符串数组、整型数组
- 示例:下拉列表选项
8. 动画资源 (Animations)
- 目录:
res/anim/(补间动画)、res/animator/(属性动画) - 作用:界面切换、控件动效
9. 菜单资源 (Menus)
- 目录:
res/menu/ - 作用:定义选项菜单、上下文菜单
- 示例:
menu_main.xml
10. 原始文件 (Raw)
- 目录:
res/raw/ - 作用:存放音频、视频、文本等不编译的文件
11. 字体资源 (Fonts)
- 目录:
res/font/ - 作用:自定义应用字体(ttf/otf)
二、Android 布局资源 4 种最常用类型(详细讲解)
Android 布局资源(res/layout/*.xml)负责定义界面长什么样,最核心、最常用的只有 4 种,我用最清晰、最实用的方式讲透:
- LinearLayout(线性布局)
- RelativeLayout(相对布局)
- FrameLayout(帧布局)
- ConstraintLayout(约束布局 —— 官方推荐)
1. LinearLayout 线性布局(最简单、最基础)
一句话总结:所有子控件按一条直线排列,要么水平,要么垂直。
核心特点
- 只能横向 / 纵向排列
- 简单、轻量、性能好
- 适合简单界面、列表项、一行 / 一列控件
适用场景
- 登录界面的输入框垂直排列
- 列表 item 布局
- 简单的一行图标 + 文字
2. RelativeLayout 相对布局(灵活自由)
一句话总结:子控件根据其他控件或父容器的位置来定位。
核心特点
- 不用线性排列,可自由指定 “在谁左边、在谁上方、居中”
- 比 LinearLayout 更灵活
- 适合复杂一点但不极端复杂的界面
适用场景
- 头像 + 昵称 + 描述的不规则排版
- 按钮在右下角、右上角
- 中等复杂度界面
3. FrameLayout 帧布局(层叠、最简单)
一句话总结:所有子控件默认都叠在左上角,后来的控件盖在前面的上面。
核心特点
- 层叠布局
- 性能最高(几乎没有计算成本)
- 只适合简单层叠、碎片、容器
适用场景
- 图片上叠加文字 / 角标
- Fragment 容器
- 视频播放界面上层控制栏
4. ConstraintLayout 约束布局(官方首选、最强大)
一句话总结:通过给控件加约束(左右上下对齐、居中、比例) 实现任何复杂界面,性能最好、嵌套最少。
核心特点
- Android Studio 默认布局
- 几乎可以完全替代另外三种布局
- 减少布局嵌套 → 界面更流畅
- 支持可视化拖拽编辑
适用场景
- 所有界面都推荐使用
- 复杂 UI
- 需要适配各种屏幕
- 减少布局层级
总结
- LinearLayout:线性排列,适合简单界面
- RelativeLayout:相对定位,灵活排版
- FrameLayout:层叠覆盖,性能最高
- ConstraintLayout:约束定位,官方首选、功能最强