2015-04-17 64 views
0

如果佈局具有android:layout_width="160dp",它會在hdpi Nexus S仿真器上呈現一半的屏幕。Android基線dpi無法幫助計算屏幕百分比

我期待Nexus 4仿真器(xhdpi)和Nexus 5仿真器(xxhdpi)能夠相應地進行縮放,並向我展示佔用屏幕一半的佈局,但他們沒有。他們還不到一半(2/5 ish)。

我錯過了什麼?我認爲XML環境總是使用特定的屏幕,所以我可以從那裏開始計算。

如果320dp = 480px /(240dpi/160)並且Nexus S是hdpi(高)〜240dpi。有意義的是,它的160dp是屏幕的一半。

然後,Nexus 5是xxhdpi(超高速)〜480dpi高清分辨率。

所以,1080px /(480dpi/160)= 360dp!

什麼?爲什麼?!

當我想分割我的屏幕資產時,我應該避免使用dp嗎?依靠體重和網格?

+2

屏幕寬度並不總是相同的。所以如果你想把屏幕分成兩半,你應該使用重量 – Budius

+1

@DerGolem,編輯謝謝。 – ericosg

+0

@Budius,謹慎發表一個答案? – ericosg

回答

0

事實上,正如Budius評論的那樣,你不能依靠dp來將屏幕分割成多個部分,因爲它只能幫助你創建對尺寸的相對理解,從而減少你需要做的計算重新調整的大小,但並不能有效地取代所有單位規模,例如原料百分比會做多少。

使用重量是要走的路。