3

我正在进行一个非常大的项目,该项目是在 android 1.5 时代开始的。

这个项目随着 android 的发展而发展,目前支持 2.3 及更高版本。

现在我遇到了这个问题,我在 drawable-hdpi、drawable-mdpi、drawable-ldpi 和 drawable 文件夹中有很多可绘制对象。

一般来说,这 3 个文件夹(drawable-hdpi、drawable-mdpi、drawable-ldpi)的概念对我来说很清楚,但我的困惑来自于可绘制文件夹中的图像。

例如,我有一个名为 myimage.png 的图像,该图像存在于 drawable-hdpi、drawable-mdpi、drawable-ldpi 文件夹中,分辨率分别为 72x72、48x48、36x36,但该图像也存在于 drawable 文件夹中。

我的问题是为什么?何时使用可绘制文件夹中的图像?这张图片是不是忘记删除了?在某些情况下使用它?我已尝试删除此图像,并且该应用程序运行良好。我也只放了一种分辨率为 72x72 的绿色,并且从未绘制过此图像

那么有人可以澄清一下drawable文件夹的存在吗?

我知道如果我没有 dhpi、mdpi 和 ldpi 文件夹,那么我需要将图像放入 drawable 但是当这 3 个文件夹存在时,drawable 中的图像有什么意义?

谢谢

编辑

还有一个问题,如果我在 drawable-hdpi 中有图像但在 ldpi 中没有图像而不是我的 mdpi 怎么办。假设我们的手机具有 mdpi 分辨率密度......会发生什么?

4

5 回答 5

3

drawable folder用于默认图像,如果在相应文件夹中找不到图像,则它将查看可绘制文件夹。

我在文档中找到了这个短语:

例如,假设您有一个应用程序图标 icon.png,并且需要针对不同区域设置的唯一版本。但是,两个语言环境,English-Canadian 和 French-Canadian,需要使用相同的版本。您可能认为您需要将相同的图像复制到 English-Canadian 和 French-Canadian 的资源目录中,但事实并非如此。相反,您可以将两者都使用的图像保存为 icon_ca.png(icon.png 以外的任何名称)并将其放在默认的 res/drawable/ 目录中。然后在 res/drawable-en-rCA/ 和 res/drawable-fr-rCA/ 中创建一个 icon.xml 文件,该文件使用该元素引用 icon_ca.png 资源。这允许您只存储一个版本的 PNG 文件和两个指向它的小 XML 文件。(示例 XML 文件如下所示。)

请参阅此链接以获得更清晰的信息。

于 2012-01-12T09:39:55.243 回答
0

这与密度无关,还有其他限定符,尽管在大多数情况下我们并没有太多使用它们。有关限定符列表,请查看此处此处。您可以使用 -finger -language ... 等限定词。如果您想提供限定符默认资源[在这种情况下可绘制],您可以选择默认可绘制文件夹。或者许多默认文件夹后面没有添加限定符

于 2012-01-12T09:48:22.283 回答
0

我认为此页面应该可以帮助您更好地理解。感谢你的提问。我自己也不知道答案。基本上你有 4 个不同的版本,如果不存在完全匹配的版本,则使用默认版本(没有限定符)。

于 2012-01-12T09:48:44.130 回答
0

AFAIK 如果您拥有具有不同分辨率图像的所有三种类型的文件夹(drawable-hdpi、drawable-mdpi、drawable-ldpi),则不需要 drawable 文件夹。

于 2012-01-12T09:40:46.467 回答
0

根据我在 Android 1.5 和 2.0 上运行应用程序时遇到的问题,如果在任何布局中使用的图像在文件夹“drawable”中不可用,那么即使图像存在于其他 hdpi 中,项目也会给出错误“找不到资源” ,mdpi 或 ldpi 文件夹。

于 2012-01-12T09:41:18.950 回答