Android无法识别屏幕尺寸

时间:2015-05-17 10:27:52

标签: android android-layout android-fragments android-resolution

我正在开发一个Android应用程序,它需要在横向和其他屏幕尺寸中具有不同的平板电脑布局。我在不同的文件夹中创建了不同的布局,就像在android教程(http://developer.android.com/training/multiscreen/screensizes.html)中建议的那样。

所以我有layout-xlarge,layout-xlarge-land等等,布局预览似乎可以识别不同设备的布局,但是当我启动应用程序时,布局不再被识别为每个设备。以下代码始终返回正常大小的布局:

int screenLayout = context.getResources().getConfiguration().screenLayout;
        screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;

switch (screenLayout) {
       case Configuration.SCREENLAYOUT_SIZE_XLARGE:
          initXLargeLayout();
          return;
       default:
          initViePagerDefaultLayout();
          return;
    }

我找不到有类似问题的人。我应该向清单文件添加内容吗?

2 个答案:

答案 0 :(得分:0)

我认为,您不应该使用int screenLayout,而应该执行以下操作:https://stackoverflow.com/a/9308284/4907293

答案 1 :(得分:0)

这可能是因为您在没有xlarge屏幕的设备上启动,因此它会进入您的默认设置。你在用什么设备?

顺便说一句,您不必执行该开关案例代码,因为Android会为您检测配置并从布局文件夹中选择(xlarge,mdpi等)并自动使用相应的布局。

您的文件夹结构应如下所示:

res
├── layout
│   └── activity_main.xml
├── layout-xlarge
|   └── activity_main.xml
└── layout-xlarge-land
    └── activity_main.xml

您只需在代码中执行一次setContentView(R.layout.activity_main.xml),Android将负责根据设备选择使用哪一个。

我建议找出你的设备是什么配置,也许它只是一个大的或其他尺寸。