尝试定义设备应使用的布局

时间:2013-03-21 09:07:47

标签: android android-layout

我正在尝试了解哪种布局使用哪种设备。

例如,我有不同的布局:

  • 布局
  • 布局sw600dp
  • 布局sw720dp
  

Nexus 7“(800x1280)使用layout-sw600dp

     

Samsung GTp3100 7“(600x1.024)使用layout-sw600dp

     

Samsung Tab 10.1(1280x800)使用layout-sw720dp

     

Sony XPERIA S 4.3(1280x720)使用布局

你们可以用“你的话”解释为什么XPERIA S不使用sw600dp或sw720dp? SW!=最小宽度? XPERIA S最小的是720.应该使用sw720或sw600,对吧?或者我错了吗?

我已阅读大量文档,但无法理解为何会发生这种情况。

非常感谢。

1 个答案:

答案 0 :(得分:5)

最小宽度限定符主要指屏幕尺寸而非物理像素。

例如,使用sw720dp表示设备的最小屏幕宽度必须为720 dp(与设备无关的像素) - 这不是大约720个物理像素。从文档......

  

与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为“中等”密度屏幕假设的基线密度。

Sony XPERIA S 4.3的物理宽度为2.5英寸,但我不知道屏幕的实际宽度有多少。

让我们假装为了计算屏幕覆盖整个宽度...在这种情况下计算dpi宽度我们只需使用720 / 2.5 = 288dpi

来自dp ...

的文档
  

dp单位到屏幕像素的转换很简单:px = dp *(dpi / 160)。

重新排列上面的公式来计算dp我们这样做......

dp = px / (dpi / 160)

...这给了我们dp的宽度(以及必要的最小宽度限定符)......

720 / (288 / 160) = 400dp

简而言之,答案是,索尼XPERIA S 4.3可能有一个高密度屏幕(尺寸),但它不是一个大屏幕。