从Android 4.3(Jelly Bean)开始,我们现在可以使用res/mipmap文件夹来存储“mipmap”图像。

例如,Chrome for Android将其图标存储在这些文件夹中,而不是更普通的res/drawable文件夹中。

这些mipmap图像与其他熟悉的可绘制图像有何不同?

我在 list 中看到,我们使用了@mipmap/限定词,而不是@drawable/,这在给定资源文件夹名称的情况下是有意义的:

<activity
    android:name=".MipmapDemp"
    android:icon="@mipmap/ic_launcher" />

引用:

Android 4.3 APIs文档的内容如下:



我看不到任何可以帮助我理解的东西。

XML Bitmap resources具有android:mipMap属性:



据我所知,这不适用于启动器图标。

Romain Guy回答了Google Groups(The purpose of resource name "mipmap"?!)上的问题:



我觉得这几乎是有道理的,但并非完全如此。

我仍然倾向于Randy Sugianto的后续行动:



当然,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徽标。

    奇怪的是,我希望看到的是72x72,而不是48x48。

    也许这就是全部-我们只需要在mipmap文件夹中保留较大的图标?

    更新#2

    2014年10月23日的Android开发者博客文章再次确认了使用mipmap文件夹作为应用程序图标的想法:
  • Getting Your Apps Ready for Nexus 6 and Nexus 9

  • 在谈到Nexus 6屏幕密度时,作者写道:



    更新#3

    请注意,Android Studio在ic_launcher.png文件夹中创建mipmap...图标,而不是Eclipse用于在其中创建它们的drawable...文件夹。

    最佳答案

    mipmap有两种不同的用法:

  • 用于构建密度特定的APK时的启动器图标。一些开发人员针对每种密度构建单独的APK,以减小APK的大小。但是,某些启动器(某些设备附带或在Play商店中可用)使用的图标尺寸比标准48dp大。启动器使用getDrawableForDensity并根据需要缩小而不是放大,因此图标是高质量的。例如,在hdpi平板电脑上,启动器可能会加载xhdpi图标。通过将启动器图标放置在mipmap-xhdpi目录中,将不会在构建适用于hdpi设备的APK时像drawable-xhdpi目录那样被剥离。如果您要为所有设备构建一个APK,那么这实际上并不重要,因为启动器可以以所需的密度访问可绘制资源。
  • 4.3版中的实际mipmap API。我没有用过,也不熟悉。 Android开源项目启动器未使用它,并且我不知道有任何其他启动器在使用。
  • 关于android - 图标的Mipmap可绘制对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23935810/

    10-11 14:32