布局桶和密度混乱

时间:2012-11-24 18:17:26

标签: android android-layout

我在支持多个屏幕时查看了the official tutorialthe blog entry。如果我错了,请纠正我 - 这种分离与设备尺寸有关。如果是这样 - 你能否解释为什么铲斗修改器(小,正常,大,xlarge)与“dp”单位有关:

  

xlarge屏幕至少为960dp x 720dp

     

大屏幕至少为640dp×480dp

所以,“dp”是给定物理平方的像素数 - 平方英寸,如果我没有弄错的话。因此,手机设备是否可能包含的像素数量等于由xlarge bucket-960dp x 720dp表示的密度。我的意思是 - 如果将dp转换为像素 - 可能会有一个手机大小的设备,分辨率等于960dp中包含的像素数量,因此专用于平板电脑的模板将被选中而不是手机模板。< / p>

感谢。

2 个答案:

答案 0 :(得分:0)

屏幕不仅仅是bigsmall,而是使用像素和密度以更加物理的方式进行描述,因此能够将任何屏幕归类为large或{{ 1}}你必须“规范化”所有这些硬件参数。而normal就是完美的。如果您只是需要知道屏幕是否大于dp,但确切的像素或密度超出了您的兴趣,那么您可以使用此屏幕。如果您关心像素或密度,则使用其他修改器。这只是您需要的问题,能够有多种选择可供选择。

答案 1 :(得分:0)

dp单位并没有说明有多少像素,而是说有多少英寸/毫米。

documentation表示您可以使用以下公式将dp转换为像素:

px = dp * (dpi / 160)

要获得dp而不是像素,您可以按如下方式重写表达式:

dp = px / (dpi * 160)

如果你只是看看这个forula中的单位你得到:

dp = pixels / (pixels / inch) <==> dp = (pixels / pixels) * inch

在这里你可以看到dp的单位实际上是英寸。 160 dp也是1英寸左右所以当你有一个960 dp x 720 dp的水桶时,它实际上与6英寸x4,5英寸相同。

因此无论具有3英寸宽屏幕的手机具有什么分辨率,屏幕将保持在3英寸并且永远不会变成6英寸,这只是屏幕的dpi发生变化。因此,手机无法放入错误的屏幕尺寸桶中。