2012-11-24 60 views
0

我已经浏览了支持多个屏幕的the official tutorialthe blog entry。纠正我,如果我错了 - 这种分离是关于设备的大小。如果是这样的 - 你能阐明为什么斗修饰符(小,中,大,超大)都涉及到“DP”单位:布局桶和密度混淆

XLARGE屏幕至少960dp X 720dp

大屏幕至少640dp x 480dp

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

谢谢。

+0

没错,但在手机下我的意思是普通的智能手机。所以,如果一个包含所表示的数量,他会渲染错误的模板。 – midnight

回答

0

屏幕不只是bigsmall但与使用的像素和密度的多个物理方式已被描述,这样一来就能归类任何屏幕largenormal你必须“正常化”所有这些硬件参数。而dp服务于此目的只是完美的。如果您只需要知道屏幕是否大于normal,但是确切的像素或密度不在您的兴趣范围内,则可以使用此降压。如果你关心像素或密度,你可以使用其他修饰符。这只是你需要的东西的问题,能够有这么多的选择可供选择是很好的。

+0

我对标准化有点困惑,但是也让我困惑的是文档列出这些分类的方式。例如,当我看到“大屏幕至少有960dp x 720dp”规则时,这对我来说意味着它们可以互换,这反过来意味着像素数量对应于960dp的手机(智能手机)也可能适用于专用于平板电脑的资源。或者这是否意味着你有更多的dp - 你获得的尺寸越大? – midnight

0

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

documentation说,你可以使用这个公式DP转换为像素:

px = dp * (dpi/160) 

要获得DP而不是像素你可以重写表达式如下:

dp = px/(dpi * 160) 

如果你只是把看看你在这个章程中获得的单位:

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

在这里你可以ee说dp的单位实际上是英寸。 160 dp也是大约1英寸,所以当你有一个尺寸为960 dp x 720 dp的桶时,它实际上与6英寸x 4,5英寸相同。

因此,不管使用3英寸宽屏幕的手机的分辨率是多少,屏幕将保持3英寸,而不会变为6英寸,这只是屏幕的dpi变化。因此,手机无法放入错误的屏幕尺寸存储区。