Android项目里,res中有两种放资源图片的目录,一个是drawable,另一个是mipmap。
使用Android Stuido创建新项目时,默认会把app icon放到mipmap里,每个分辨率里各放一份,从hdpi到xxxhdpi,1倍图到4倍图。
但是开发过程中,资源图一般都是放到drawable中,我们常用的是3倍图目录,drawable-xxhdpi,习惯了这样做却没深究为什么这样做。
既然已经创建了mipmap目录,为什么不直接使用,而非要用手动创建的drawable目录呢?
突然想到这个问题,就查了一下,原来这两个目录除了名字,还是有其他区别的:
mipmap目录在安装到设备后,各个分辨率的资源会全部保留,而drawable下的资源只会选择一份合适的,其他的不保留。
特意验证了一下:
- 创建一个新项目,把一张图在drawable-xxhdpi(3倍)和drawable-xhdpi(2倍)中各放一份
- 安装到一个屏幕密度440,也就是2.75倍的设备上(160为1倍)
- adb导出apk包,jadx反编译
- 发现只有3倍目录下有这张图,2倍目录下没有
- 验证正确