2014-10-30 23 views
1

我正在測試Samsung Galaxy Note 3,根據文檔是1080 x 1920像素(〜386 ppi像素密度)。我想知道dp中的屏幕寬度是什麼,所以我可以正確應用並檢查new size qualifiersAndroid dp單元與現實世界不匹配

我用一個好的'尺子測量屏幕寬度(肖像)= 71mm = 2.8英寸 1080/2.8 = 386 ppi。太好了,這符合規定的密度。

我想弄清楚屏幕有多少個dp單位。

DP = PX /從here
= 1080 /(一百六分之三百八十六)(DPI/160)= 1080/ 2.4125 = 447.7 DP

所以,如果我這樣做:

<TextView 
android:id="@+id/density_test" 
android:layout_width="447dp" 
android:layout_height="wrap_content" 
android:background="#ffff0000" 
android:text="DENSITY TEST 447dp" /> 

然後在我的Galaxy Note 3上這個視圖應該幾乎是屏幕的寬度。 但它不是,它的方式更寬

所以我設定在上述視圖layout_width="300dp",測量它有多寬與我的尺子和外推在DP實際的屏幕寬度,在此基礎上測試:

300dp =59毫米

總屏幕寬度是71毫米

所以推斷屏幕寬度在DP =(五十九分之七十一)* 300 = 361dp

361dp!= 447.7dp

這是怎麼回事?我覺得我一定在做一些愚蠢的事情。

編輯:我試圖把佈局文件放在/ res/layout-xhdpi中,但它沒有效果。我想也許它是由xhdpi/mdpi縮放它,因爲我在默認的/ res/layout目錄下有xml。

enter image description here

+1

[相關測量(HTTP://計算器的.com /問題/ 21265670 /三星音符-2-和音符-3-屏幕桶)。 – stkent 2014-10-30 02:09:31

回答

4

的實際像素大小是根據DP計算的,但不那麼精確式DP = PX /(DPI/160)一樣。事實上,它首先確定屏幕密度(ldpp,mdph,hdpi,xhdpi,xxhdpi,xxxhdpi),並使用該密度從{0.75,1.0,1.5,2.0,3.0,(4.0)}得到一個比率。

在你的情況下,系統認爲386dpi的xxhdpi,所以它乘以3.0計算值,360dp就恰好填滿屏幕的寬度(1080)