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

Rei*_*erd 2 android android-layout

我试图了解哪个布局使用哪个设备.

例如,我有不同的布局:

  • 布局
  • 布局sw600dp
  • 布局sw720dp

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

三星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,对吧?还是我错了?

我已经阅读了大量文档,但无法理解为什么会发生这种情况.

非常感谢.

Squ*_*onk 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)
Run Code Online (Sandbox Code Playgroud)

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

720 / (288 / 160) = 400dp
Run Code Online (Sandbox Code Playgroud)

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