0

根据屏幕支持的Android文档,他们描述如下,

  • 超大屏幕至少为 960dp x 720dp
  • 大屏幕至少为 640dp x 480dp
  • 普通屏幕至少为 470dp x 320dp
  • 小屏幕至少为 426dp x 320dp

我有一个代码片段如下;

Display display = getWindowManager().getDefaultDisplay();
int displayWidth = display.getWidth();

我需要了解与displayWidth输出相关的 XML 布局的值范围。

例如,我想要一个类似的答案;

如果0 < displayWidth < 320小屏幕

上面这句话可能错了,我只是看到一个例子。

此外,我们可以在 res 目录下拥有 layout、layout-small、layout-large、layout-xlarge 和 layout-xlarge-land 等目录。那么适用于这些布局的 displayWidth 是多少。

作为一个例子,就像上面一样;

如果0 < displayWidth < 320用于布局小

谢谢你。

4

3 回答 3

0

我认为'最好如下计算屏幕的对角线长度。

DisplayMetrics  displayMetrics = getResources().getDisplayMetrics();
    double screen_phys_width  = (double)displayMetrics.widthPixels / displayMetrics.xdpi;
    double screen_phys_height = (double)displayMetrics.heightPixels / displayMetrics.ydpi; 
    screen_diagonal = Math.sqrt(screen_phys_width * screen_phys_width + screen_phys_height * screen_phys_height);
于 2012-06-12T07:14:47.607 回答
0
  try {
        WindowManager wm = (WindowManager) this
                .getSystemService(Context.WINDOW_SERVICE);
        Display display = wm.getDefaultDisplay();

        if (display.getHeight() == 480 && display.getWidth() == 320) {

                  //Medium Screens
            i = 1;
            return i;
        } else if (display.getHeight() == 320 && display.getWidth() == 240) {
                 //Small Screens
            i = 1;
            return i;
        } else if (display.getHeight() == 800 && display.getWidth() == 480) {
                //Large Screens
            i = 1;
            return i;
        } else if (display.getHeight() == 1280 && display.getWidth() == 800) {

               //X-large Screens
           i = 2;
            return i;
        }

    } catch (Exception e) {
        i = 0;
    }
    return i;
于 2012-06-12T07:13:32.993 回答
0

如果您的目标是知道将使用 layout-small 或 layout-large 等布局中的哪个布局,则可以使用此技巧。您可以拥有一个可见性消失的视图,并向该视图添加一个标签,指示它是哪种布局。

在运行时,您可以检索此视图并测试其标记。这样您就可以知道使用了哪种布局。

android 文档为您提供了对于这样那样的屏幕尺寸,将使用相应类型的布局的信息。现在你的设计决定是为不同的屏幕尺寸编写不同的布局。

于 2012-07-26T16:53:53.870 回答