一、res 目录结构
res/ 目录下按资源类型划分了不同的子目录:
| 目录 | 用途 |
|---|---|
drawable | 存放普通图片(如背景图、插图等) |
mipmap 开头 | 存放应用图标(Launcher Icon) |
values | 存放字符串、样式、颜色等 |
layout | 存放布局文件 |
二、为什么有这么多 mipmap 和 drawable 文件夹
为了适配不同分辨率的设备,Android 提供了多套目录:
drawable-hdpi → 高分辨率
drawable-xhdpi → 超高分辨率
drawable-xxhdpi → 超超高分辨率
drawable-xxxhdpi → 最高分辨率
mipmap 同理,有 mipmap-hdpi、mipmap-xhdpi、mipmap-xxhdpi 等。
工作原理:开发时为同一张图片准备不同分辨率的版本,分别放入对应文件夹。应用运行时,系统会根据当前设备的屏幕密度自动选择最匹配的那套资源加载。
三、资源的引用方式
1. 字符串资源
在 res/values/strings.xml 中定义:
<resources>
<string name="app_name">My Application</string>
</resources>Code language: HTML, XML (xml)
引用方式分两种场景:
| 场景 | 引用格式 | 示例 |
|---|---|---|
| 在 XML 文件中 | @string/app_name | android:text="@string/app_name" |
| 在 Java 代码中 | R.string.app_name | getString(R.string.app_name) |
2. 图片和图标引用
注意:XML 中不能直接用 R.mipmap.xxx 这种 Java 语法!
| 资源类型 | XML 中引用 | Java 代码中引用 |
|---|---|---|
| 图标(mipmap) | @mipmap/ic_launcher | R.mipmap.ic_launcher |
| 图片(drawable) | @drawable/bg_image | R.drawable.bg_image |
| 布局(layout) | — | R.layout.activity_main |
| 字符串(string) | @string/app_name | R.string.app_name |
示例对比:

<!-- XML 中:用 @ 前缀 -->
android:icon="@mipmap/school"Code language: HTML, XML (xml)
// Java 中:用 R. 前缀
setContentView(R.layout.activity_main);Code language: JavaScript (javascript)
四、AndroidManifest.xml 中的资源引用
打开 AndroidManifest.xml,application 标签里已经用到了多种资源引用:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">Code language: HTML, XML (xml)
| 属性 | 引用资源 | 作用 |
|---|---|---|
android:icon | @mipmap/ic_launcher | 应用图标 |
android:label | @string/app_name | 应用名称 |
android:roundIcon | @mipmap/ic_launcher_round | 圆形应用图标 |
android:theme | @style/AppTheme | 应用主题 |
五、动手练习:修改应用名称和图标
步骤 1:修改应用名称
打开 res/values/strings.xml:
<resources>
<string name="app_name">FoxDevelop</string>
</resources>Code language: HTML, XML (xml)
保存后,桌面上的应用名称就会变成”北盟网校”。
步骤 2:准备图标文件
- 下载一个 PNG 格式的图标

- 文件名规则:不能使用横杠
-,只能用下划线_或小写字母、数字- ✅
school_bell.png - ❌
school-bell.png
- ✅


步骤 3:放入对应目录
将图标文件拷贝到 res/mipmap-xxhdpi/(或对应分辨率的 mipmap 文件夹)中。
步骤 4:修改 AndroidManifest.xml
<application
android:icon="@mipmap/school_bell"
android:roundIcon="@mipmap/school_bell"
... >Code language: HTML, XML (xml)
步骤 5:重新运行
点击 ▶ Run 按钮,部署到模拟器。你会看到:
- 桌面上的应用名称变成了”FoxDevelop”
- 应用图标变成了你设置的
school_bell.png

六、总结
| 要点 | 说明 |
|---|---|
| 资源引用规则 | XML 用 @类型/名称,Java 用 R.类型.名称 |
| 多分辨率适配 | 不同分辨率图片放不同文件夹,系统自动选择 |
| 修改应用名 | 改 res/values/strings.xml 中的 app_name |
| 修改应用图标 | 替换 mipmap 目录下的 PNG 文件,修改 AndroidManifest.xml 中的 android:icon |
| 文件名规范 | 只能用小写字母、数字、下划线,不能用横杠 |
一句话记住:XML 用
@,Java 用R.;图标放 mipmap,图片放 drawable,名字放 values。
Previous: APP是怎么运行起来的
Next: build.gradle