1

我正在开发一个针对 android 4+ 的应用程序,它的行为因屏幕大小而异。更详细:

  • 在小/中型屏幕上,方向被强制为纵向,应用程序通过切换活动来运行。
  • 在大/超大屏幕上,横向是强制的,屏幕被分成两部分,菜单片段在左边,其他片段在右边。

问题是,我无法创建被检测为大屏幕的 AVD。

刚刚在分辨率为 640x1024、密度为 240 的 AVD 上进行了测试,此代码从未进入第一个 IF。

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // forcing layout to landscape if display is LARGE or more
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE ||
            (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        dualPane = true;
    }
    else {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        dualPane = false;
    }
}

有什么帮助吗?

4

1 回答 1

0

假设您安装了适用于 Eclipse 的 Android SDK 插件,您可以创建一个仅使用 LARGE 布局的模拟器:

  1. 在 Eclipse 中,单击绿色的小 Android 按钮(“打开 Android 虚拟设备监视器”)。
  2. 新的...
  3. 名称 = [随便]
  4. 目标 = Android 4.x
  5. CPU/ABI = [随便] 但英特尔仿真器通常更好/更快。
  6. 分辨率 = 1024 x 600。这是重要的部分。不要使用 600 x 1024。它必须是横向设备(如“迷你平板电脑”)
  7. 同样重要的是:手动将密度设置为 MDPI:单击“抽象 LCD 密度”-> 将 MDPI 的数字更改为 160。
  8. 创建 AVD

现在启动设备。它只会使用 LARGE 布局 (Configuration.SCREENLAYOUT_SIZE_LARGE)。使用 Ctrl+F11 旋转到纵向。纵向模式也将使用 LARGE 布局。

于 2012-12-28T11:27:00.063 回答