从Android 4.3(Jelly Bean)开始,我们现在可以使用res/mipmap
文件夹来存储“ mipmap”图像。
例如,Chrome for Android将其图标存储在这些文件夹中,而不是更普通的res/drawable
文件夹中。
这些mipmap图像与其他熟悉的可绘制图像有何不同?
我在清单中看到,我们使用@mipmap/
限定符而不是@drawable/
,这在给定资源文件夹名称的情况下是有意义的:
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
参考文献:
将采用Android 4.3的API文档具有以下的说:
使用mipmap作为位图或可绘制对象的源是提供高质量图像和各种图像比例的一种简单方法,如果您希望在动画过程中对图像进行比例缩放,则该方法特别有用。
Android 4.2(API级别17)在Bitmap类中添加了对mipmap的支持-当您提供了mipmap源并启用了setHasMipMap()时,Android会在Bitmap中交换mip图像。现在,在Android 4.3中,您还可以通过提供mipmap资源并在位图资源文件中设置android:mipMap属性或调用hasMipMap()来为BitmapDrawable对象启用mipmap。
我看不到任何可以帮助我理解的东西。
XML位图资源具有一个android:mipMap
属性:
布尔值。启用或禁用mipmap提示。有关更多信息,请参见setHasMipMap()。默认值为false。
据我所知,这不适用于启动器图标。
这个问题是在Google网上论坛上提出的(资源名称“ mipmap”的目的是?!),罗曼·盖伊回答说:
提供通常可以计算的较大分辨率的图像很有用(例如,在mdpi设备上,启动器可能希望较大的hdpi图标显示较大的应用程序快捷方式。)
我觉得这几乎是有道理的,但并非完全如此。
我仍然倾向于Randy Sugianto的后续行动:
这有什么好处?有没有指南如何使用mipmaps,可能是为了更好的启动器图标?
当然,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 Studio ic_launcher.png
在mipmap...
文件夹中而非在drawable...
Eclipse用于创建图标的文件夹中创建图标。