首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图标的Mipmap绘图

图标的Mipmap绘图
EN

Stack Overflow用户
提问于 2014-05-29 14:29:25
回答 12查看 195.4K关注 0票数 471

由于Android4.3(果冻豆),我们现在可以利用res/mipmap文件夹来存储"mipmap“图像。

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

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

在我的清单中,我们使用了@mipmap/限定符,而不是@drawable/,这在给定资源文件夹名称时是有意义的:

代码语言:javascript
复制
<activity
    android:name=".MipmapDemp"
    android:icon="@mipmap/ic_launcher" />

参考文献:

Android4.3 API文档有以下几点:

使用mipmap作为位图或绘图的源是提供高质量图像和各种图像比例的简单方法,如果您期望在动画期间缩放图像,这将特别有用。 Android4.2 (API级别17)在Bitmap类中增加了对mipmap的支持--当您提供mipmap源并启用setHasMipMap()时,Android将交换位图中的mip图像。在Android4.3中,您也可以通过在位图资源文件中提供mipmap资产和设置android:mipMap属性或调用hasMipMap()来为hasMipMap对象启用mipMap。

我看不出有什么能帮我理解的。

XML位图资源有一个android:mipMap属性:

布尔。启用或禁用mipmap提示。有关详细信息,请参阅setHasMipMap()。默认值为假。

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

这个问题是在谷歌集团(https://groups.google.com/forum/#!topic/android-developers/ZUyF0JEwibs)上提出的,Romain回答说:

提供一个通常需要计算的更大分辨率的图像是很有用的(例如,在mdpi设备上,Launcher可能希望更大的hdpi图标显示大的应用快捷方式)。

我觉得这几乎是有意义的,但不完全是这样。

我仍然倾向于与兰迪·苏吉安托的后续行动:

这样做有什么好处呢?有任何指南如何使用mipmap,可能是为了更好的启动图标?

当然,维基百科有一个"Mipmap“页面。指的是1983年发明的一种较老的技术,我不太了解目前的安卓实现。

现在我们应该把我们所有的res/mipmap应用程序图标存储在文件夹中吗?对于这些mipmap图像,准则是什么?

更新#1

这里有一篇博文试图解释一下。

  • Android 4.3中可绘图的混合映射

但该博客文章中使用的图片显示了一个文件,其中包含许多标识。这不是我在Chrome的mipmap文件夹中看到的。

Chrome的mipmap-hdpi文件夹包含三个图像。一个是Chrome的标志,单独使用。

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

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

更新#2

安卓开发人员在23/10/2014的博客上再次证实了使用mipmap文件夹作为应用程序图标的想法:

  • 为Nexus 6和Nexus 9准备好你的应用程序

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

最好的做法是把你的应用程序图标放在mipmap文件夹中(而不是可绘制的文件夹),因为它们用于与设备当前密度不同的分辨率。例如,xxxhdpi应用程序图标可以在xxhdpi设备的启动程序上使用。

更新#3

注意,Android在mipmap...文件夹中创建mipmap...图标,而不是在drawable...文件夹中创建它们。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2014-06-05 17:25:04

mipmaps有两种不同的用途:

  1. 用于生成特定密度的APK时的启动图标。一些开发人员为每一种密度构建单独的APK,以降低APK的大小。但是,一些启动器(随某些设备一起提供,或者在Play Store上可用)使用的图标大小比标准的48 or要大。启动程序使用getDrawableForDensity,并在需要时缩小,而不是向上,因此图标是高质量的。例如,在hdpi平板上,启动程序可能会加载xhdpi图标。通过将您的启动程序图标放置在mipmap-xhdpi目录中,在为hdpi设备构建APK时,它不会像可绘制的xhdpi目录那样被剥离。如果您正在为所有设备构建一个APK,那么这并不重要,因为启动程序可以为所需的密度访问可提取的资源。
  2. 来自4.3的实际mipmap API。我没有用过这个,也不熟悉它。Android开源项目启动程序没有使用它,我也不知道其他的启动程序在使用。
票数 268
EN

Stack Overflow用户

发布于 2015-05-21 06:20:19

谷歌似乎已经更新了他们的文档,因为所有这些答案,所以希望这将有助于其他人在未来:)只是遇到了这个问题,同时创建了一个新的(新的)项目。

TL;DR:作为特定于dp的资源优化的一部分,可提取的资源可能会被剥离。Mipmap是不会被剥夺的。

不同的主屏幕启动程序在不同的设备上显示不同分辨率的应用程序启动图标。当应用资源优化技术为未使用的屏幕密度删除资源时,启动器图标可能看起来模糊,因为启动程序必须升级低分辨率图标以供显示。为了避免这些显示问题,应用程序应该使用mipmap/资源文件夹作为启动图标。Android系统保留了这些资源,而不考虑密度剥离,并确保启动应用程序能够选择具有最佳分辨率的图标以供显示。

(来自http://developer.android.com/tools/projects/index.html#mipmap)

票数 80
EN

Stack Overflow用户

发布于 2015-09-01 09:42:43

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

这是我解释差别的两分钱。在Android中处理图像时,有两种情况:

  1. 你想要加载一个图像为你的设备密度,你将使用它的“原样”,而不改变它的实际大小。在这种情况下,您应该使用可绘制图形,和安卓将给您提供最佳的合适图像。
  2. 你想要为你的设备密度加载一个图像,但是这个图像将被放大或缩小。例如,当你想要显示一个更大的启动图标,或者你有一个动画,这是需要的,这增加了图像的大小。在这种情况下,为了确保最佳的图像质量,您应该将图像放到mipmap文件夹中。Android将做的是,它将尝试从一个更高密度的桶中提取图像,而不是放大它。这将提高图像的清晰度(质量)。

因此,决定把你的形象放在哪里的经验法则是:

  • 启动器图标总是进入mipmap文件夹。
  • 图像通常会被放大(或者非常缩小),其质量对应用程序至关重要,也可以进入mipmap文件夹。
  • 所有其他图像都是通常的可绘制
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23935810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档