有人会说,如果 Galaxy Tab 屏幕分辨率(纵向模式)为600px
,屏幕宽度为3.55inch
,则屏幕密度为600/3.55 = 169 dpi
。了解这一点并牢记计算设备独立像素 (dp) 的方式 ( http://developer.android.com/guide/practices/screens_support.html ):
px = dp * (dpi / 160);
600 = dp * (169 / 160);
dip = 568
因此,从位置 0 开始绘制 568dp(与设备无关的像素)宽度的水平线必须与屏幕宽度完全匹配。但是如果你在设备上试试这个,你会发现屏幕宽度是400dp
. 我将再次使用相同的公式,但要获取 dpi:
600 = 400 * (dpi / 160);
dpi = 240
那么拥有240dpi
,3.55inch
屏幕宽度 和600pixels
, 是否意味着一个物理像素由多个“点”组成,否则参数对应于 的宽度852pixel (3.55*240)
。
我认为 dpi 的意思是每英寸的点数,也就是每英寸的像素数。但这似乎不是真的……
稍后添加:
这(http://developer.android.com/guide/topics/resources/more-resources.html#Dimension)说:
无论屏幕密度如何,160dp 始终为一英寸
这不是真的。只需从这里检查测量源: Android 维度之间的差异:pt 和 dp
甚至稍后添加:
我要问的原因是违反规则,160dp = 1inch
导致当将控件宽度指定为例如 320dp 时,它将在 Galaxy Tab 上覆盖更大的部分,这是真正必要的,并且比您期望的要大得多600x1024像素屏幕...
感谢您的澄清BR STeN