2010-03-28 104 views

回答

75

我打算猜測「三個可繪製的文件夾」是drawable-ldpi,drawable-mdpidrawable-hdpi。在這種情況下,如果您堅持使用所有這些文件夾,則需要在每個文件夾中放置一個圖像,其大小與所指示的屏幕密度相匹配。這在online documentation以及blog post中討論。您可以找到一組示例項目,顯示根據屏幕密度here使用不同的可繪製資源。

如果您剛剛開始進行Android開發,您可以擺脫所有這三個目錄並創建一個目錄,將您的圖像放在那裏。但最終,對於高質量的應用程序,您將需要在具有不同屏幕密度的不同設備/模擬器上測試您的圖像,並可能爲每個密度都有不同的圖像,以改善應用程序的外觀。

+20

你不需要在每個圖像中放置圖像;該平臺將選擇與設備密度最匹配的圖像,並且它不能準確匹配該設備。 對於瞄準1.6或更高版本的應用程序,強烈建議您將位圖放在與其設計密度相匹配的目錄中(沒有密度規格的位圖是沒有意義的);當然像各種XML可繪製的非位圖通常沒有這種需要,應該放在純文本目錄中。 另請參閱:http://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources – hackbod 2010-03-28 17:56:47

+4

如果將可縮放位圖放在/ drawable文件夾中,LINT會發出抱怨。它目前用於無密碼項目,例如基於xml的可繪製項目。 – 2012-04-09 10:55:53

5

這裏是對multi device options的引用。

正如@CommonsWare說,你不需要將資源投入在什麼,但RES /佈局/或繪製/但如果你希望你的程序對不同屏幕/密度多臺設備提供更好的體驗/你可能想要考慮你有這種選擇的語言。

1

還有趣的是,雖然不是特定於圖像,但android是如何處理資源的。它給了他們一個加載順序,更具體的手段將會被挑選出不太具體的東西。

例如,您的值文件夾中的strings.xml中有三個字符串值。在名爲values-en的文件夾中也有一個特定的字符串。當android打開您的應用並且您的語言環境匹配en時,它會從values-en加載兩個來自values文件夾的缺省值和第三個更具體的字符串。如果您的語言環境爲ru,則只會使用默認值,因爲您沒有值-ru文件夾。

圖像也是如此。如果android無法爲您的特定屏幕變體找到圖像,它將使用可繪製文件夾中的默認值。

在我看來,最好的做法是在通用文件夾中設置默認值/圖像,如特定文件夾中的值/繪圖和特定值/圖像。通過這種方式,當前和未來的設備至少可以顯示內容,直到您可以提供特定的版本。