2010-12-01 39 views
12

所有Android文檔都提到了「drawable」目錄。但是,當我在Eclipse中創建一個Android項目時,它不創建「/ res/drawable」目錄,但它確實創建了「/ res/drawable-ldpi」和「/ res/drawable-mdpi」。我想這些與像素分辨率有關,但是到底發生了什麼?當我瀏覽完教程後,我手動創建了一個「drawable」目錄並將我的資源放在那裏,但是我需要嗎?如果只有「drawable- {l | m} dpi」存在,是否提及「/ res/drawable /」工作?drawable與drawable-ldpi/drawable-mdpi

回答

2

我認爲它有話跟你如何產生的Android項目。通常我會創建一個hdpi,mdpi和ldpi文件夾。基本上,「可繪製」是默認設置。 如果你在hdpi文件夾中擁有所有資源,並嘗試在ldpi設備上運行它,我相信你會得到某種異常(我沒有測試過,但我相信這是事實)。 有關缺省資源發生情況的詳細說明,請參閱here

爲了安全起見,您應該在主「可繪製」文件夾中保留默認的資源集合(是的,您可能必須手動創建),並確保與舊版Android的兼容性。 Android會首先檢查特定的密度文件夾,但如果無法找到該密度的特定資源,它將回滾到默認的可繪製文件夾。

0

HDPI,在Android 1.6的加入MDPI和LDPI限定符。如果您打算支持Android 1.5,則應將所有中等dpi可繪製項目放入默認可繪製目錄中。

你可以閱讀一下here

1

介紹最新SDK的創建很多關於你繪製文件夾的各種屏幕密度創建一個新的應用程序時,雖然奇怪的是在文檔中提到的默認「繪製」文件夾中從來沒有爲我所創造默認。

如果您爲默認創建的所有六個密度文件夾(從drawable-ldpi到drawable-xxxhdpi)複製和調整圖形資源的大小,則應用程序大小將會增加以適應沉重的圖形應用程序,更不用說其他問題出現了像堆大小崩潰(它們應該爲不同的設備堆大小提供不同的文件夾)。

目前,我把我所有的圖形提拉 - 華電國際文件夾,除了在xhdpi,xxhdpi更高的分辨率,並且xxxhdpi文件夾中的啓動器圖標的副本。我不把任何東西放在mdpi和ldpi文件夾中,實際上已經刪除了這些文件夾以保持應用程序清潔。我也可以將drawable-hdpi重命名爲drawable,但是保留默認名稱,因爲它在這種情況下充當默認文件夾。

1

In this answer,@RomainGuy提到您應該在drawable文件夾中爲其各自的文件夾(mdpi,xhdpi)和其他來源(如.xml文件)繪製適當的圖像。

例如,
如果您將使用hdpi設備,而您沒有在hdpi文件夾中放置任何圖像,則不會崩潰;它將改爲調整其下一個最適合的文件夾(即mdpi)的圖像大小,並將展開圖像。