Mipmaps与drawable文件夹的区别

671

我正在使用Android Studio 1.1 Preview 1进行工作。 我注意到在创建新项目时,我得到了以下层次结构:

图像描述

不再有不同DPI drawable文件夹,而是为不同DPI设置的mipmap文件夹。

我应该将所有资源放入mipmap文件夹中还是只有应用程序图标?


5
请查看下面链接中谷歌博客的声明: "...因为它们在分辨率上与设备的当前密度不同。例如,xxxhdpi应用程序图标可以在xxhdpi设备的启动器上使用。" 这说明有些设备明确尝试使用不同密度的图标,而不是当前设备密度指定的图标。例如,某些制造商可能希望在主屏幕上使用比启动器屏幕更大的图标,或者在通知中使用比通常规格更小的图标。因此,我们必须识别这些资源并将它们放置在mipmap文件夹中。 - Rahul Thakur
1
以上评论只是我理解的一种假设,可能是错误的。 - Rahul Thakur
这里有更多的信息 --> mipmap drawables for icons - Richard Le Mesurier
1
Google 应该为放置应用图标添加 Lint 快速修复功能。我在这里发了一篇帖子:https://code.google.com/p/android/issues/detail?id=219500 - android developer
1个回答

951

这些 mipmap 文件夹仅用于放置应用/启动器图标(显示在主屏幕上)。您使用的任何其他可绘制资产都应像以前一样放置在相关的 drawable 文件夹中。

根据此 Google 博客文章

最佳做法是将您的应用程序图标放在 mipmap- 文件夹中(而不是 drawable- 文件夹),因为它们在分辨率与设备当前密度不同时使用。

当引用 mipmap- 文件夹时,请确保使用以下引用:

android:icon="@mipmap/ic_launcher"

他们使用不同的密度是因为有些启动器实际上会将图标显示得比预期的要大。因此,他们使用稍大一号的尺寸。


195
请注意,引文中提到的“应用图标”指的是启动器图标,而不一定是其他图标。 - CommonsWare
57
“因为它们在分辨率与设备当前像素密度不同的情况下使用”,这句话的意思是什么?这是本次发布中最难理解的短语之一。 - Kurovsky
6
在您的代码中使用它们时,请确保使用(R.mipmap.icon_name)而不是(R.drawable.icon_name)。 - Sajidur Rahman
18
当从“drawable”请求资源时,将从与当前密度匹配的文件夹中选择位图。例如,Nexus 5 从XXHDPI中选择可绘制对象。启动器可能会从其他文件夹中选择图标。Nexus 5 启动器使用来自XXXHDPI的图标。https://dev59.com/r4Lba4cB1Zd3GeqPay2z - SharkAlley
27
他们使用不同的密度是因为一些启动器实际上会将图标显示得比预期更大。因此,他们使用下一个尺寸来进行处理。 - Richard Le Mesurier
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接