我在支持多个屏幕时查看了the official tutorial和the blog entry。如果我错了,请纠正我 - 这种分离与设备尺寸有关。如果是这样 - 你能否解释为什么铲斗修改器(小,正常,大,xlarge)与“dp”单位有关:
xlarge屏幕至少为960dp x 720dp
大屏幕至少为640dp×480dp
所以,“dp”是给定物理平方的像素数 - 平方英寸,如果我没有弄错的话。因此,手机设备是否可能包含的像素数量等于由xlarge bucket-960dp x 720dp表示的密度。我的意思是 - 如果将dp转换为像素 - 可能会有一个手机大小的设备,分辨率等于960dp中包含的像素数量,因此专用于平板电脑的模板将被选中而不是手机模板。< / p>
感谢。
答案 0 :(得分:0)
屏幕不仅仅是big
或small
,而是使用像素和密度以更加物理的方式进行描述,因此能够将任何屏幕归类为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发生变化。因此,手机无法放入错误的屏幕尺寸桶中。