2013-03-03 81 views
0

每次,當我提供資源,以繪製文件夾,這裏是我做過什麼招數提供資源,以不同的繪製文件夾

drawable-xhdpi (96x96 px) 
drawable-hdpi (72x72 px) 
drawable-mdpi (48x48 px) 
drawable-ldpi (36x36 px) 

大多數時候,我只是用GIMP從最大的羽絨進行假規模從drawable-xhdpi大小的圖像。縮小的圖像上我不執行任何進一步的像素編輯。

最近,我意識到,如果我只提供1個最高分辨率圖像,Android系統將在內部進行圖像尺寸按比例縮小。

drawable-xhdpi (96x96 px) 
drawable-hdpi (empty) 
drawable-mdpi (empty) 
drawable-ldpi (empty) 

我在2個設備上測試過。這個對我有用。我想知道這是一個很好的技術,以避免繁瑣的工作,以提供這麼多不同大小的圖像?這種技術有什麼副作用?

回答

1

我想知道這是一個很好的技術,以避免繁瑣的工作,以 供應這麼多不同大小的圖像?任何副作用在這個 技術?

我想象有(至少)兩個:

  1. 這可能不總是與9-補丁工作,特別是如果可拉伸區域是由一個或多個單像素定義的。例如,如果你會提供這樣的9patch如xhdpi繪製,則該單個像素將有效地「減半」,從而要麼完全消失或與周圍的透明像素混合的MDPI裝置上。後者通常適用於任何高檔/低檔操作,所以很可能您的9patch不會按預期顯示。

  2. 較大的圖像只會佔用更多的內存空間。特別是在低端(er)端設備上,由於內部存儲器數量有限且堆空間限制相當嚴格,因此當加載圖像的方式比顯示所需的方式更大時,您可能會快速耗盡內存。


關於你的評論:這是很容易拿出一個樣品9patch不會在視覺上看起來意在所有不同的屏幕密度,如果你提供它只是作爲xhdpi資源。考慮以下9patch:

enter image description here

擴大快照知名度的緣故:

enter image description here

顯然,這種想法是,當這個9patch被拉長,結果是1個像素厚的水平藍線。現在,在剛剛xhdpi文件夾刪除此9patch和xhdpi與MDPI比較結果:

enter image description here

顯然,MDPI設備已縮減從xhdpi文件夾中的9patch,結果不看像打算一樣。

無論如何,我的觀點是,在很多情況下,不提供每個密度桶9個小時可能會看起來很好。請注意這樣一個事實,那裏肯定有場景可能無法達到預期效果。另外,請考慮內存參數。

+0

我已經測試了9個補丁,放在xhdpi文件夾中。 9貼片只有1個像素拉伸和內容區域。它令人驚訝。它適用於我的非xhdpi設備。也許Android會在執行縮放之前解析拉伸和內容信息。 – 2013-03-03 05:39:24

+0

@嚴程CHEOK:我添加了一個例子來說明潛在的有問題的9patch。雖然顯然確切的結果將取決於您的具體9patches,我認爲這是要注意並保持在你的腦海。 – 2013-03-16 02:26:24

0

您使用的將工作中的設備的數量較少的技術.. 因爲在市場上有很多不同的分辨率和不同尺寸的手機。 在一些低分辨率設備,其屏幕尺寸較小,用戶界面不會看合適... 現在看看你正在使用的閃屏,其分辨率爲720 * 1280(xhdpi)背景圖片的例子,你已經把它在Xhdpi可繪製文件夾中,當你在像三星euopa或HTC wildfire這樣的低端設備上查看這個可繪製文件時,圖像看起來就像是擠壓型。

會有很多其他情況下,你會被要求使用不同的圖像集...... 如果你提到的技術可以在所有手機上工作,那麼爲什麼Android會爲不同的設置開發不同的文件夾圖像....:P

+0

它不會看起來像擠壓型,因爲Android知道圖像意味着高分辨率。 Android足夠智能,可以在低分辨率手機上顯示圖像之前進行圖像縮放。 – 2013-03-03 03:50:58

+0

那麼你的意思是Android沒有任何目的創建這些mdpi hdpi ldpi文件夾......雖然Android會縮放圖像,但任何人都可以猜測720 * 1280分辨率的圖像在320 * 480分辨率下的設備。 ... 在某些情況下,你的佈局也不合適.... 休息一下你 – 2013-03-03 03:54:22

相關問題