2013-01-08 40 views
3

我的應用程序支持從ldpi到xhdpi的各種屏幕密度。它包含一些需要在所有密度上正確顯示的drawable(圖像)。 我想知道實際上需要提供多少種不同的drawables分辨率,考慮到當Android運行時無法找到合適的密度時,它正在擴展資源。爲什麼要爲各種密度提供多個drawable?

如果您只提供mdpi drawables,則它們將在hdpi/xhdpi(模糊)上放大並在ldpi屏幕上縮小。

但是,如果您只提供xhdi資源,那麼它們將在所有密度較低的屏幕上縮小比例。縮小並不會讓它們變得模糊,它們看起來會很好。

那麼爲什麼還要爲xhdpi提供其他密度的drawable?

+0

因爲photoshop或類似的圖像編輯程序,比android基本規模algorythms –

回答

8

有幾個原因使用預分頻可繪:

  1. 的縮減,以較低的分辨率需要的資源(CPU時間,內存和它消耗你的電池更快),特別是如果你有大量的圖像,這威力是不受歡迎的。

  2. 縮小大圖像可能會導致比使用「預先調整的」較小圖像更差的質量。特別是如果你的圖像是基於矢量原始的。或者它們包含非常細的線條或細節,由於縮放會丟失。
    例如:
    original image變得scaled image
    對這些圖像的源和上定標工件的更多信息請參見here

  3. 在較低分辨率下圖像像素較大(或圖像變小),因此可能需要移除圖像的某些方面以保持清晰/可理解。

+0

是更好的工作,但這些文物將發生在Photoshop中 - 不會嗎? – stoefln

+1

這取決於使用的縮放方法,您可以在照片編輯應用程序中手動選擇。 (專業)照片編輯應用程序傾向於具有高質量的縮放方法(因此需要更多的資源)。最後但並非最不重要的一點是,當您手動縮放圖像時,您會看到結果,並且如果需要,可以修復製品。 – Veger

1

你對擴展資源的假設是不正確的。一些大的圖像在縮小時可能仍然很好看,但這不是一般情況。如果圖像平滑過渡且沒有漸變,則會很好地縮小比例。例如,包含尖銳過渡或包含文本的圖像在較低分辨率下看起來會很難看。

0

如果您自己縮小比例,結果可能會比自動縮放更好,如果繪製了準備工作,您的應用程序不會消耗用於縮放的資源。

0

不是必需的,但例如,您可以針對不同的屏幕分辨率使用具有不同畫面的不同佈局。你可以選擇這樣做。如果你和你的用戶對結果感到滿意,那麼很酷。如果你需要不同的密度和分辨率的行爲,那麼這個功能非常有用。

相關問題