2014-10-30 48 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)