Android Studio下drawable图标和mipmap图标详解

创建drawable图标

新建一个Android Studio项目,并将任务视图切换到“Project”下,这时可以看到,系统在res目录下,为我们创建了4个对应的drawable文件夹,如下图所示。
drawable文件夹
如果没有,请读者自行创建(另外还有ldpi的xxxhdpi这两个不常用到的类别,因此,我在这里省略了它们)。

每一个对应的drawable目录下,都应该相应地有一张相同的图片,只是分辨率不一样。这些图片文件都是按照目录名对应的dpi进行定制的。

应用中所有图片资源都会随应用安装到设备里,Android操作系统知道如何为不同的设备提供最佳匹配。注意,在为不同的设备准备适配图片的同时,应用安装包需要的容量也随之增大。当然,对于一些小项目,这些问题不是很明显。

如果应用不包含设备对应屏幕的像素密度文件,在运行时,Android系统会自动找到可用的图片资源,针对该设备进行适配。有了这个特性,就不必准备各种屏幕像素密度文件了。因此,为控制应用宝的大小,我们可以只为主流设备准备分辨率较高的定制图片资源。至于那些不常见的低分辨率设备,让Android系统自动适配就好。

使用mipmap图像

资源修饰符和drawable用起来都很方便。应用要用到图像,就针对不同的设备尺寸准备不同尺寸的图片,在分别放入drawable-mdpi之类的文件夹。然后,按名字引用它们。剩下的就交给Android了,它会根据当前设备的屏幕密度调用相应的图片。

但是,有个问题不得不提。发布到应用商店的APK文件包含了项目drawable目录里的所有图片,哪怕是从来不会用到的图片。这是一个负担。

为减轻负担,有人想到针对设备定制APK,比如mdpi APK一个,hdpi APK一个,等等。(有关APK分包的详细信息,可查阅工具文档网页:http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits)或者点击这里跳转

但是问题解决的不够彻底。假如想保留各个屏幕像素密度的启动图标呢?

Android启动器会显示大尺寸应用图标。想让大图标清晰好看,启动器就需要使用更高分辨率的图标。对于hdpi设备,要显示大图标,启动器就会使用xhdpi图标。

找不到的话,就只能使用低分辨率的图标。可想而知,方法拉伸后的图标肯定很糟。
Android终极解决之道就是使用mipmap目录。可参考上图。

APK分包时,mipmap资源会全部包含在APK文件中。
要一劳永逸,推荐的做法就是,把应用启动器图标放在mipmap目录中,其他图片都放在drawable目录中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值