res目录下的结构
如果你展开res目录看一下,其实里面的东西还是挺多的,很容易让人看得眼花缭乱,如图(res目录下的结构)所示。
看到这么多的文件夹也不用害怕,其实归纳一下,res目录就变得非常简单了。
drawable开头的文件夹
所有以drawable开头的文件夹都是用来放图片的
mipmap开头的文件夹
所有以mipmap开头的文件夹都是用来放应用图标的
values开头的文件夹
所有以values开头的文件夹都是用来放字符串、样式、颜色等配置的
layout文件夹
layout文件夹是用来放布局文件的
之所以有这么多mipmap开头的文件夹,其实主要是为了让程序能够更好地兼容各种设备。drawable文件夹也是相同的道理,虽然Android Studio没有帮我们自动生成,但是我们应该自己创建drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等文件夹。在制作程序的时候最好能够给同张图片提供几个不同分辨率的版本,分别放在这些文件夹下,然后当程序运行的时候,会自动根据当前运行设备分辨率的高低选择加载哪个文件夹下的图片。当然这只是理想情况,更多的时候美工只会提供给我们一份图片,这时你就把所有图片都放在drawable-xxhdpi文件夹下就好了。
知道了res目录下每个文件夹的含义,我们再来看一下如何去使用这些资源吧。打开res/values/strings.xml文件,内容如下所示:
使用res目录下的资源
可以看到,这里定义了一个应用程序名的字符串,我们有以下两种方式来引用它
- 在代码中通过R.string.hello_world可以获得该字符串的引用
- 在XML中通过@string/hello_world可以获得该字符串的引用
基本的语法就是上面这两种方式,其中string部分是可以替换的,如果是引用的图片资源就可以替换成drawable,如果是引用的应用图标就可以替换成mipmap,如果是引用的布局文件就可以替换成Layout,以此类推。
下面举一个简单的例子来帮助你理解,打开AndroidManifest.xml文件,找到如下代码:
其中, 项目的应用图标就是通过android:icon属性来指定的,应用的名称则是通过android:Label属性指定的。可以看到,这里对资源引用的方式正是XML中引用资源的语法。
如果你想修改应用的图标或者名称,相信已经知道该怎么办了吧。