0

我浏览了官方教程和支持多屏的博客条目。如果我错了,请纠正我 - 这种分离完全与设备尺寸有关。如果是这样 - 你能否阐明为什么桶修饰符(小,正常,大,xlarge)与“dp”单位相关:

超大屏幕至少为 960dp x 720dp

大屏幕至少为 640dp x 480dp

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

谢谢。

4

2 回答 2

0

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

文档说您可以使用以下公式将 dp 转换为像素:

px = dp * (dpi / 160)

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

dp = px / (dpi * 160)

如果你只看一下这个公式中的单位,你会得到:

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

在这里您可以看到 dp 的单位实际上是英寸。160 dp 也大约是 1 英寸,所以当你有一个大小为 960 dp x 720 dp 的桶时,它实际上与 6 英寸 x 4.5 英寸相同。

所以不管3英寸宽屏手机的分辨率是多少,屏幕都会保持在3英寸,永远不会变成6英寸,只是屏幕的dpi发生了变化。因此,手机不可能被放入错误的屏幕尺寸桶中。

于 2014-03-28T10:06:41.040 回答
0

屏幕不只是bigsmall已经以更物理的方式使用像素和密度来描述,因此能够将任何屏幕归类为large或者normal您必须“标准化”所有这些硬件参数。并且dp完美地服务于这个目的。如果您只需要知道屏幕是否大于normal但精确的像素或密度是您不感兴趣的,那么您可以使用它。如果您关心像素或密度,则可以使用其他修饰符。这只是您需要什么的问题,能够有这么多选项可供选择是件好事。

于 2012-11-24T18:25:45.030 回答