drawable & mipmap

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、mipmap根据密度划分

xxxhdpi:4.0                    建议尺寸:192*192           dpi范围:480- 640dpi
xxhdpi:3.0                      建议尺寸:144*144          dpi范围:320- 480dpi
xhdpi:2.0                       建议尺寸:96*96               dpi范围:240~320dp
hdpi:1.5                         建议尺寸:72*72               dpi范围:160~240dp
mdpi:1.0(基准)        建议尺寸:48*48               dpi范围:120~160dp
ldpi:0.75                       建议尺寸:36*36               dpi范围:0~120dp

二、一些结论

1.在App中,无论你将图片放在drawable还是mipmap目录,系统只会加载对应density中的图片;
而在Launcher中,如果使用mipmap,那么Launcher会自动加载更加合适的密度的资源。

2.应用内使用到的图片资源,并不会因为你放在mipmap或者drawable目录而产生差异。单纯只是资源路径的差异R.drawable.xxx或者R.mipmap.xxx。(也可能在低版本系统中有差异)

3.一句话来说就是,自动跨设备密度展示的能力是launcher的,而不是mipmap的。

4.app图标(launcher icon) 必须放在mipmap目录中,并且最好准备不同密度的图片,否则缩放后可能导致失真。

5.应用内使用到的图片资源,放在drawable目录亦或是mipmap目录中是没有区别的,该准备多个密度的还是要准备多个密度,如果只想使用一份切图,那尽量将切图放在高密度的文件夹中。

三、例子

测试机密度3.0,对应资源文件夹是drawable-xxhdpi,有一张图片时300*300。
1.当我们使用资源id来去引用一张图片时,Android会使用一些规则来去帮我们匹配最适合的图片:
当drawable-xxhdpi文件夹下有图片,则使用drawable-xxhdpi中的,
否则优先会去更高密度的文件夹下找这张图片,依次为:drawable-xhdpi -> drawable-hdpi -> drawable-mdpi -> drawable-ldpi。

2.当使用和设备相同的density的xxhdpi文件夹时,图片显示原始大小300x300;

3.当使用hdpi的图片时,因为该图片在低密度下,系统会认它不够大,会自动帮我们放大, 300 * 3 / 1.5 ==> 600x600
当使用xxxhdpi时,300 * 3 / 4 ==> 225x225

作者:AItsuki
链接:https://www.jianshu.com/p/f7dc272b3469
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
。什么叫最适合的图片?比如我的手机屏幕密度是xxhdpi,那么drawable-xxhdpi文件夹下的图片就是最适合的图片。因此,当我引用android_logo这张图时,如果drawable-xxhdpi文件夹下有这张图就会优先被使用,在这种情况下,图片是不会被缩放的。但是,如果drawable-xxhdpi文件夹下没有这张图时, 系统就会自动去其它文件夹下找这张图了,优先会去更高密度的文件夹下找这张图片,我们当前的场景就是drawable-xxxhdpi文件夹,然后发现这里也没有android_logo这张图,接下来会尝试再找更高密度的文件夹,发现没有更高密度的了,这个时候会去drawable-nodpi文件夹找这张图,发现也没有,那么就会去更低密度的文件夹下面找,依次是。

参考链接:https://www.jianshu.com/p/f7dc272b3469

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值