有人会说,如果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 dimension: pt与dp的差异
后来添加:
我问这个问题的原因是,违反160dp = 1inch
规则会导致这样一个事实,即当将控制宽度指定为例如320dp时,它将在Galaxy Tab上覆盖比真正必要的更大的部分,并且比您期望的600x1024px屏幕要大得多…
谢谢你的澄清BRSTeN
Galaxy Tab(7")没有报告其真实密度。要了解这个问题,请阅读以下文章:
http://realmike.org/blog/2010/12/21/multiple-screen-sizes-with-processing-for-android/显然,这也是三星在制造Galaxy时发现的选项卡。Galaxy Tab拥有7″,1024×600屏幕,170 dpi。然而,标签不报告其密度为"mdpi",但作为"hdpi",所以布局看起来和第二个截图一模一样。如果他们使用"mdpi",那么图标的宽度是。28″,加上hdpi,它们的宽度是。42″,不算大我必须承认,这样的布局确实看起来更漂亮。