6

我正在开发一个 Android 应用程序,我想使用图像作为活动的背景。我的目标是从 API 8 到最新版本。我想知道这样做的最佳方法是什么。

我已阅读Supporting different Screen SizesSupporting Multiple Screens

因此,我为每个背景制作了 4 张图像,尺寸分别为:320x480、480x800、600x1024、800x1280。首先,我将文件分别放在这个文件夹中:drawable-sw320dp, drawable-sw480dp, drawable-sw600dp, drawable-sw720dp. 然后,我意识到这仅适用于 Android 3.2 及更高版本,因此我需要添加 small、normal、large 和 xlarge 文件夹。为了不重复文件,我遵循了第一篇文章这部分的想法。

最终的结构是:

  • 文件夹内的所有图像drawable,每个维度具有不同的名称
  • 每个文件夹中的 xml 文件:values-sw320dp, values-sw480dp, values-sw600dp, values-sw720dp, values-small, values-normal, values-large, values-xlarge

例如,对于主要活动的背景,我有:

  • drawable\bg_main_320.png
  • drawable\bg_main_480.png
  • drawable\bg_main_600.png
  • drawable\bg_main_720.png
  • drawables.xml上面提到的八个文件夹中。

和文件夹的内容drawables.xml是:values-sw480dpvalues-normal

<resources>
    <item name="bg_main" type="drawable">@drawable/bg_main_480</item> 
</resources>

我在 Android 2.3.7 和 4.0.3 中对此进行了测试,并且运行良好。但是,对于每张图像,我都会收到此 Lint 警告:“在无密度文件夹中找到位图可绘制 res/drawable/bg_main_480.png。问题:确保未在与密度无关的可绘制文件夹中定义图像”。我知道这意味着什么,但我不会继续为每个 dp 创建更多图像,因为它毫无意义。

我使用的结构是否正确?你有什么建议?

4

2 回答 2

16

/res/drawable不应该有任何图像文件,它应该只包括使用 XML 定义的可绘制对象。您应该根据目标像素密度将实际图像文件放在合格的可绘制目录中。如果您不想指定任何限定符,请将它们放在 /res/drawable-nodpi

于 2013-02-11T15:42:48.897 回答
0

你可以在这里找到有价值的信息信息

并且在“res”forlder中你可以看到不同的drawables:36x36 for low-density

48x48 用于中等密度

72x72 用于高密度

96x96 用于超高密度

您可以将文件用于特定分辨率。

于 2013-02-11T15:47:34.207 回答