oynix

于无声处听惊雷,于无色处见繁花

Android之drawable和mipmap的区别

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倍目录下没有
  • 验证正确
------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2021/09/58788ef67dbf/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道