引言
上一节中提到了一个问题,图片通常应该存放的位置在哪里,是放在mipmap
下还是drawable
下。
其实当时我已经接受了官方的建议,但是用AndroidStudio
创建一个新项目时,首先是drawable
文件夹下面没有分类成各种分辨率的文件夹,其次新建drawable-hdpi等文件夹时,并在android
视图下的项目结构中,并没有看到生成的文件夹,但是show in Explorer
时,又能看到新建的文件夹。因此,我将各种分辨率的PNG资源图片都存放在了mipmap
文件夹下了。但是在使用TextView
中的drawableTop
等方式时,xml
中引用没问题,代码中更改图片资源时出现了问题,猜测是因为,textview更换资源图片的方法都是setDrawable
方法,传入参数应该也是drawable
,而我传入的参数值为getResources().getDrawable(R.mipmap.xx)
,所以带着这样的疑问,我来写写关于标准化、流程化的drawable文件存放方式。
正文
官方文档中有介绍:
显然mipmap
是用来存放应用图标
的 ,drawable
才是放图片资源的
在我们创建工程时,
Androidstudio
会自动帮我们创建drawable
文件夹,但是并没有创建不同分辨率的,只能自己动手了 !在
project
视图下找到res文件夹右键–New–Android resource directory
- Resource type 选择drawable
- 分别创建不同的分辨率
- 在
AndroidStudio
安装目录\plugins\android\lib\templates\gradle-projects\NewAndroidModule
下 打开recipe.xml.ftl
文件添加
<mkdir at="${escapeXmlAttribute(resOut)}/drawable-hdpi" />
<mkdir at="${escapeXmlAttribute(resOut)}/drawable-xhdpi" />
<mkdir at="${escapeXmlAttribute(resOut)}/drawable-xxhdpi" />
- 再次创建工程时
drawable
文件夹下就会有不同分辨率的文件夹了