47

项目层次结构中res文件夹中的三个drawable文件夹有什么区别?如果我有要放入文件夹的图像,我应该将其放入哪个文件夹?

4

3 回答 3

75

我将猜测“三个可绘制文件夹”是drawable-ldpi,drawable-mdpidrawable-hdpi. 在这种情况下,如果您坚持使用所有这些文件夹,则需要在每个文件夹中放置一张图像,其大小应与指示的屏幕密度相匹配。在线文档和此博客文章中对此进行了讨论。您可以在此处找到一组示例项目,这些示例项目显示了基于屏幕密度使用不同的可绘制资源。

如果您刚刚开始进行 Android 开发,您可以摆脱所有这三个目录并创建一个drawable目录,将您的图像放在那里。但是,最终,对于高质量的应用程序,您将希望在具有不同屏幕密度的不同设备/模拟器上测试您的图像,并且可能为每种密度使用不同的图像以改善您的应用程序的外观。

于 2010-03-28T15:38:35.540 回答
5

这是对多设备选项的参考。

正如@CommonsWare 所说,您不需要将资源放在 res/ layout/ 或 drawable/ 之外的任何地方,但是如果您希望您的程序在具有不同屏幕/密度/语言的多个设备上获得更好的体验,您可能需要考虑你有那个选择。

于 2011-07-07T08:55:42.560 回答
1

同样有趣的是,虽然不是特定于图像,但 android 是如何处理资源的。它给了他们一个加载顺序,其中更具体意味着它将被选择而不是不太具体。

例如,您的 values 文件夹中的 strings.xml 中有三个 String 值。在名为 values-en 的文件夹中还有一个特定的字符串。当 android 打开你的应用并且你的语言环境匹配 en 时,它会从 values 文件夹中加载两个默认值,并从 values-en 中加载第三个更具体的字符串。如果您的语言环境是 ru,它将只使用默认值,因为您没有 values-ru 文件夹。

图像也是如此。如果 android 无法为您的特定屏幕变体找到图像,它将使用可绘制文件夹中的默认值。

在我看来,在您的通用文件夹中拥有默认值/图像是一种很好的做法,例如特定文件夹中的值/drawable 和特定值/图像。这样,当前和未来的设备至少都可以显示您的内容,直到您可以提供特定版本。

于 2014-10-16T08:53:13.073 回答