支持所有屏幕尺寸和Android版本

时间:2013-02-11 15:31:27

标签: android android-drawable

我正在开发一个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及更高版本,因此我需要添加小型,普通,大型和xlarge文件夹。为了不重复文件,我遵循了this section of the first article的想法。

最终结构是:

  • 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.xmlvalues-sw480dp文件夹的values-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创建更多图像,因为它没有意义。

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

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:-1)

您可以在info

找到有价值的信息

以及&#34; res&#34; forlder你可以看到不同的drawables: 36x36为低密度

中等密度48x48

72x72高密度

96x96,用于超高密度

您可以将文件放入特定分辨率。