2012-07-23 15 views
1

我知道在不同的DPI中使用圖像是Android中一種相當常見的做法。但我並沒有真正看到它的目的,爲什麼我們不能只使用超大圖像,然後在程序中進行縮放?我知道如果我們在不同的DPI中沒有圖像,我們可能需要額外計算,但除此之外,還有其他原因嗎?Android:使用具有不同像素密度的圖像的目的?

回答

6

Tim and a.d.對你有正確的推理。如果您想查看重新調整大小或以正確大小繪製的內容之間的比較,請使用可視化示例。如果有非常小的細節,效果總是更加明顯。

enter image description hereenter image description hereenter image description here

首先是一個大的200×200(我們把它叫做xhdpi),第二個是簡單的重採樣適用於mdpi(75x75)相同的圖像。第三個是重新設計的相同規格,但從75x75開始。正如您所看到的,第二個文本顯着模糊,並且在重新縮放後的形狀邊緣存在一些僞像。

2

您可以獲得屏幕密度的優化圖像。如果你把所有這些都留給xhdpi,你必須知道一些重要的像素可能在這個過程中消失了,因爲你沒有注意到這一點。

如果您不關心速度和準確性,並且您認爲人們不會注意到丟失了重要像素,則可以使用此方法。

不僅如此,而且如果您自己縮放圖像(例如使用加權),則根本不需要將它們放在dpi文件夾中 - 您可以將它們放在drawable-nodpi文件夾中。

1

通過爲每個主要類別的屏幕密度提供已經呈現爲適當尺寸的圖像,您可以避免在代碼中明確進行縮放,這將使代碼變得更「乾淨」。

您還可以避免由於顯示的每個圖像都必須縮放而導致的性能下降,具體取決於您的應用程序需要做多少縮放才能顯着提升性能而不執行這些操作隨着視圖正在向用戶顯示,「即時」。

最後,爲每種尺寸提供適當的渲染圖像將確保您的資源看起來更好。系統縮放並不完美,如果必須根據比例縮放圖像的「清晰度」,將會導致圖像「清晰」。如果它必須顯着地擴展它們,這對用戶來說是顯而易見的。