从 Android 4.3 (Jelly Bean) 开始,我们现在可以使用res/mipmap
文件夹来存储“mipmap”图像。
例如,Android 版 Chrome将其图标存储在这些文件夹中,而不是更普通的res/drawable
文件夹中。
这些 mipmap 图像与其他熟悉的可绘制图像有何不同?
我看到在我的清单中,我们使用了@mipmap/
限定符,而不是@drawable/
,考虑到资源文件夹名称,这很有意义:
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
参考:
Android 4.3 APIs文档有以下说法:
使用 mipmap 作为位图或可绘制对象的源是提供高质量图像和各种图像比例的简单方法,如果您希望图像在动画期间进行缩放,这将特别有用。
Android 4.2(API 级别 17)在 Bitmap 类中添加了对 mipmap 的支持——当您提供 mipmap 源并启用 setHasMipMap() 时,Android 会交换 Bitmap 中的 mip 图像。现在在 Android 4.3 中,您也可以为 BitmapDrawable 对象启用 mipmap,方法是提供 mipmap 资源并在位图资源文件中设置 android:mipMap 属性或调用 hasMipMap()。
我没有看到任何可以帮助我理解的东西。
XML 位图资源有一个android:mipMap
属性:
布尔值。启用或禁用 mipmap 提示。有关详细信息,请参阅 setHasMipMap()。默认值为假。
据我所知,这不适用于启动器图标。
这个问题是在 Google Groups 上提出的(资源名称“mipmap”的目的?!),Romain Guy 回答:
以通常会计算的较大分辨率提供图像很有用(例如,在 mdpi 设备上,Launcher 可能希望较大的 hdpi 图标显示较大的应用程序快捷方式。)
我觉得这几乎是有道理的,但不完全是。
我仍然倾向于使用 Randy Sugianto 的后续行动:
这样做有什么好处?是否有任何指南如何使用 mipmap,可能是为了更好的启动器图标?
当然,Wikipedia 有一个“Mipmap”页面,它指的是 1983 年发明的一种较旧的技术,我与当前的 Android 实现不太相关。
这些天我们是否应该将所有应用程序图标存储在res/mipmap
文件夹中,这些 mipmap 图像的指导方针是什么?
更新#1
这是一篇试图解释它的博客文章。
但是该博客文章中使用的图像显示了一个包含许多徽标的文件。这不是我在 Chrome 的 mipmap 文件夹中看到的。
Chrome 的mipmap-hdpi
文件夹包含三个图像。一个是 Chrome 标志,它自己。
奇怪的是,它是 72x72,而不是我希望看到的 48x48。
也许这就是全部 - 我们只需要在 mipmap 文件夹中保留更大的图标?
更新#2
2014 年 10 月 23 日的 Android 开发者博客文章再次确认了使用mipmap
文件夹作为应用程序图标的想法:
在谈到 Nexus 6 的屏幕密度时,作者写道:
最好将您的应用程序图标放置在 mipmap- 文件夹(而不是 drawable- 文件夹)中,因为它们使用的分辨率与设备的当前密度不同。例如,可以在 xxhdpi 设备的启动器上使用 xxxhdpi 应用程序图标。
更新#3
请注意,Android Studioic_launcher.png
在文件夹中创建图标,mipmap...
而不是在drawable...
Eclipse 用来创建图标的文件夹中。