我正在开发一个 Android 应用程序,我想使用图像作为活动的背景。我的目标是从 API 8 到最新版本。我想知道这样做的最佳方法是什么。
我已阅读Supporting different Screen Sizes和Supporting 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-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 创建更多图像,因为它毫无意义。
我使用的结构是否正确?你有什么建议?