mipmap VS drawable

在AndroidStudio上创建的项目中会包含有一个mipmap的文件夹,里面存放着app的ic_launcher图标,在Eclipse上这些图标是放置于drawble文件夹下的。那是不是app的所有icon都应放在mipmap中呢?

网上有两种不同的意见。一说google强烈推荐用来取代drawable,可以加速渲染。一说扯淡没这回事的,神他妈的强烈推荐,谷歌爸爸从来没说过,mipmap只是用来装Launcher图标的。

度娘百科:

MIP map技术帮助避免了不想要的锯齿边缘(称为锯齿状图形)在图像中出现,这种锯齿状图形可能是由于在不同分辨率下使用bitmap图像产生的。

wiki:

为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MIP map 或者 mipmap。

度娘和wiki的说明来看,mipmap确实可以加快渲染速度,而且是为了解决在不同分辨率下使用bitmap产生的问题,这就不难理解Launcher图标为什么在mipmap目录下了。在Launcher界面,图标很可能因为选中效果等动画进行放大缩小,因此可以使用mipmap来让动画更加丝滑流畅。


AndroidDeveloper上 android 4.3 关于Mipmap的说明:


Mipmapping for drawables

Using a mipmap as the source for your bitmap or drawable is a simple way to provide a quality image and various image scales, which can be particularly useful if you expect your image to be scaled during an animation.

大意就是如果期望图像在动画中缩放,使用mipmap作为bitmap或者drawable的来源是一个提供有质量的多尺寸规格的图片的简单办法。


StackOverFlow

在stackoverflow上看了相关的讨论后,觉得这位大哥解释的比较在理,更容易理解


所以,最开始的两种说法都存在一定问题,既不是把所有图标都放置在mipmap下,也不是说mipmap只能够放Launcher图标。如果图标有固定的尺寸,不需要更改,那么drawable更加适合。如果需要变大变小变大变小的,有动画的,放在mipmap中能有更高的质量。

推荐阅读更多精彩内容