支持所有屏幕大小和android版本

支持所有屏幕大小和android版本,android,android-drawable,Android,Android Drawable,我正在开发一个Android应用程序,我想使用图像作为活动的背景。我的目标是从API 8到最新版本。我想知道最好的方法是什么。 我读过,也读过 因此,我为每个背景制作了4幅图像,尺寸如下:320x480、480x800、600x1024、800x1280。首先,我将文件分别放在以下文件夹中:drawable-sw320dp、drawable-sw480dp、drawable-sw600dp、drawable-sw720dp。然后,我意识到这只适用于Android3.2及以上版本,所以我需要添加小

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

我读过,也读过

因此,我为每个背景制作了4幅图像,尺寸如下:320x480、480x800、600x1024、800x1280。首先,我将文件分别放在以下文件夹中:
drawable-sw320dp、drawable-sw480dp、drawable-sw600dp、drawable-sw720dp
。然后,我意识到这只适用于Android3.2及以上版本,所以我需要添加小的、普通的、大的和xlarge文件夹。为了不复制文件,我遵循了

最后的结构是:

  • drawable
    文件夹中的所有图像,每个维度具有不同的名称
  • 每个文件夹中的xml文件:
    values-sw320dp、values-sw480dp、values-sw600dp、values-sw720dp、values small、values normal、values large、values xlarge
例如,对于我的主要活动的背景:

  • drawable\bg\u main\u 320.png
  • drawable\bg\u main\u 480.png
  • drawable\bg\u main\u 600.png
  • drawable\bg\u main\u 720.png
  • drawables.xml
    在上述八个文件夹中
values-sw480dp
values normal
文件夹的
drawables.xml
内容如下:

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

@可抽出式/bg\U主管道\U 480
我在安卓2.3.7和4.0.3中测试了这一点,它运行良好。但是,我对每幅图像都会收到这样的Lint警告:“在densityless文件夹中找到位图drawable res/drawable/bg_main_480.png。问题:确保图像未在密度无关的drawable文件夹中定义”。我知道这意味着什么,但我不会继续为每个dp创建更多的图像,因为这是毫无意义的


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

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

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

此外,在“res”forlder中,您可以看到不同的绘图: 36x36用于低密度

48x48用于中等密度

72x72用于高密度

96x96用于超高密度


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

Lint帮助说:“如果图标确实与密度无关(例如纯色),则可以将其放在可绘制的nodpi中。”。所以,我不确定使用该文件夹是否正确。不管怎样,我使用的结构是正确的吗?(维度和文件夹)这似乎是可行的,但您必须使用各种设备形状因素来测试这一点。你真的需要这样使用图像吗?如果有任何方法可以使用九块补丁图像或平铺图像,这两种方法都可以使您的生活更轻松。谢谢您的回答。现在,我将把图像移动到/res/drawable nodpi。也许,将来我会想办法用更复杂的绘图工具来重现这些图像。你看过这篇文章了吗?我已经提到了那篇文章,问题不是关于dp文件夹。