android – 图标的Mipmap drawables
作者:互联网
从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 APIs文件有如下说法:
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.Android 4.2 (API level 17) added support for mipmaps in the Bitmap
class—Android swaps the mip images in your Bitmap when you’ve supplied
a mipmap source and have enabled setHasMipMap(). Now in Android 4.3,
you can enable mipmaps for a BitmapDrawable object as well, by
providing a mipmap asset and setting the android:mipMap attribute in a
bitmap resource file or by calling hasMipMap().
我没有看到任何有助于我理解的东西.
XML Bitmap resources有一个android:mipMap属性:
Boolean. Enables or disables the mipmap hint. See setHasMipMap() for
more information. Default value is false.
就我所见,这不适用于启动器图标.
问题出现在Google网上论坛(The purpose of resource name “mipmap”?!)上,Romain Guy回复道:
It’s useful to provide an image at a larger resolution that would
normally be computed (for instance, on an mdpi device, Launcher might
want the larger hdpi icon to display large app shortcuts.)
我觉得这几乎是有意义的,但并不完全.
我仍然倾向于选择Randy Sugianto的跟进:
What are the advantages of this? Is there any guide how to use
mipmaps, probably for better launcher icons?
当然,Wikipedia has a page for “Mipmap”,指的是1983年发明的一种老技术,我无法与当前的Android实现相关联.
我们现在应该将所有应用程序图标存储在res / mipmap文件夹中吗?这些mipmap图像的准则是什么?
更新#1
这是一篇博文,试图解释一下.
> Mipmapping for drawables in Android 4.3
但是该博客文章中使用的图像显示了一个包含许多徽标的文件.这不是我在Chrome的mipmap文件夹中看到的.
Chrome的mipmap-hdpi文件夹包含三张图片.一个是Chrome徽标,单独使用.
奇怪的是,它是72×72,而不是48×48,我希望看到.
也许这就是全部 – 我们只需要在mipmap文件夹中保留更大的图标?
更新#2
2014年10月23日的Android开发者博客文章再次证实了将mipmap文件夹用于应用程序图标的想法:
> Getting Your Apps Ready for Nexus 6 and Nexus 9
在谈到Nexus 6屏幕密度时,作者写道:
It’s best practice to place your app icons in mipmap- folders (not the
drawable- folders) because they are used at resolutions different from
the device’s current density. For example, an xxxhdpi app icon can be
used on the launcher for an xxhdpi device.
更新#3
请注意,Android Studio会在mipmap …文件夹中创建ic_launcher.png图标,而不是Eclipse用于创建它们的drawable …文件夹.
解决方法:
mipmap有两种不同的用途:
>用于构建密度特定APK时的启动器图标.一些开发人员为每个密度构建单独的APK,以保持APK大小.但是,某些发射器(随某些设备一起提供,或在Play商店中提供)使用比标准48dp更大的图标尺寸.启动器使用getDrawableForDensity并在需要时缩小,而不是向上缩小,因此图标质量很高.例如,在hdpi平板电脑上,启动器可能会加载xhdpi图标.通过将启动器图标放在mipmap-xhdpi目录中,在为hdpi设备构建APK时,它不会像drawable-xhdpi目录那样被剥离.如果您正在为所有设备构建单个APK,那么这并不重要,因为启动程序可以访问可绘制资源以获得所需的密度.
> 4.3的实际mipmap API.我没有使用它,我不熟悉它.它没有被Android开源项目启动器使用,我也不知道有任何其他启动器使用.
标签:android,mipmaps,android-drawable 来源: https://codeday.me/bug/20190915/1805891.html