Android图片资源处理

Android用到的图片资源一般指三种:png/jpg等位图文体,.9文件,selector xml文件,在之前的开发中,都放在drawable目录下,但使用最新的Android Studio时,我们会发现所有的登录icon被默认放在了mipmap目录下,并且在不同子目录下放着不同尺寸的图片。是不是在新版本中,所有的位图资源都移到mipmap目录下了呢,我们去官方开发指南中可以看到,drawable和mipmap目录使用解释如下:



也就是说,除了登录使用的icons放在mipmap目录下,其他icon图片、.9图片及xml文件都还是放在drawable目录下。

但是,我个人觉得如下方式更方便:

1).9文件及xml文件放在drawable目录;

2)所有的icon文件放在mipmap目录。

为什么这样呢?因为xml文件和.9文件本身都是带有缩放功能,可以自适应不同屏幕,而icon图片一般为了适应不同屏幕,可能需要放在不同的子文件夹下,如果都放在drawable目录下,会先的很混乱,而把icon图片放在mipmap目录下,会显得很清晰。

另外,最新版本的布局layout文件调用资源时,已经可以默认直接调用mipmap目录的文件了。app在加载时,会自动调用相应尺寸的位图,如果对应目录下没有,则会从xxxhdpi目录向下查找。

此外,还需注意的是,同一个图片若放在不同目录下,最终在手机上显示效果是不一样的,为什么呢?

因为对于mipmap目录下的每一张位图,系统会计算出图片的独立像素大小,比如一张36*36px的图片,如果放在mdpi子目录下,因为该目录对应的dpi是160,缩放因子是1.0,所以系统计算出的独立像素大小也为36*36dp;假如把该图片放在hdpi目录下,该目录对应的dpi是240,缩放因子是1.5,系统计算出该图片的独立像素就是24*24dp。换算成独立像素为单位的图片,使用起来就可以很好的自适应各种尺寸了。

例如系统自带的登陆图标,会在不同目录下放上不同的尺寸,但是根据缩放因子计算出的独立像素大小却是一样的:


那这样看来,只需要准备一套图片,就可以满足不同尺寸需要。使用哪种尺寸呢,常见的有ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi,缩放因子分别是0.75,1,1.5,2,3,4。如果使用较小的尺寸,当在分辨率较高的手机上使用,图片放大倍数太高,肯定不清晰;如果使用较大的尺寸,肯定又会占用太多的资源,安装包较大,加载后占用内存也会比较大。综合考虑,选择缩放因子为2.0的尺寸比较合适。这时,你的app布局需要多大dp的图片,就让UI裁成2倍px的图片,放入mipmap-xhdpi目录下,就可以很好的满足各种尺寸屏幕所需了!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值