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

Iva*_*nRF 3 android android-drawable

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

我读过支持不同的屏幕尺寸支持多个屏幕.

所以,我用这个尺寸为每个背景制作了4张图像:320x480,480x800,600x1024,800x1280.首先,我将文件分别放在这个文件夹中:drawable-sw320dp, drawable-sw480dp, drawable-sw600dp, drawable-sw720dp.然后,我意识到这只适用于Android 3.2及更高版本,因此我需要添加小型,普通,大型和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.xmlvalues-sw480dpvalues-normal文件夹为:

<resources>
    <item name="bg_main" type="drawable">@drawable/bg_main_480</item> 
</resources>
Run Code Online (Sandbox Code Playgroud)

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

我正在使用的结构是对的吗?你有什么建议?

Kar*_*uri 10

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