2013-02-11 103 views
3

我正在開發一個Android應用程序和我想使用圖像作爲活動的背景。我將API 8定位到最新版本。我想知道什麼是最好的方法來做到這一點。支持所有屏幕尺寸和Android版本

我讀過Supporting Different Screen SizesSupporting Multiple Screens

所以,我爲這個尺寸的每個背景製作了4張圖片:320x480,480x800,600px,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-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創建更多的圖像,因爲它毫無意義。

我正在使用的結構是否正確?你有什麼建議?

回答

8

/res/drawable不應該有任何圖像文件,它應該只包括使用XML定義的drawables。您應該根據目標像素密度將您的實際圖像文件放在合格的可繪製目錄中。如果你不想指定任何限定,將它們放置在 /res/drawable-nodpi

+0

Lint幫助說:「如果圖標真的是密度獨立的(例如純色),您可以將它放在drawable-nodpi中。」所以,我不確定使用該文件夾是否正確。無論如何,我用的是正確的結構嗎? (尺寸和文件夾) – IvanRF 2013-02-11 15:51:58

+0

它看起來可以工作,但您必須用各種設備形狀因素來測試。你絕對需要這樣使用圖像嗎?如果有任何方法可以使用九幅圖像或平鋪圖像,則可以讓您的生活更輕鬆。 – Karakuri 2013-02-11 15:58:01

+0

感謝您的回答。現在,我將把圖像移動到/ res/drawable-nodpi。也許,在未來,我會想辦法用更復雜的可繪圖來重建圖像。 – IvanRF 2013-02-11 19:25:23

-1

您可以在這裏找到有價值的信息,在「資源」 info

,也forlder你可以看到不同的可繪製: 36x36的低密度

48x48的用於中密度

最高72x72用於高密度

96x96的額外的高密度

你可以把你的文件的特定分辨率。

+0

您是否看過這篇文章?我已經提到該文章和問題不是關於dp文件夾。 – IvanRF 2013-02-11 15:55:00