1

画面サイズによって動作が異なるAndroid 4+をターゲットとするアプリを開発しています。詳細:

  • 小さい/中程度の画面では、向きは強制的に縦向きになり、アクティビティを切り替えることでアプリが実行されます。
  • ラージ/特大スクリーンでは、向きはランドスケープで強制され、スクリーンは 2 つに分割され、メニュー フラグメントが左側に、他のフラグメントが右側に表示されます。

問題は、大画面として検出される 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 Virtual Device Monitor を開く」ため)。
  2. 新しい...
  3. 名前 = [なんでも]
  4. ターゲット = Android 4.x
  5. CPU/ABI = [何でも] しかし、Intel エミュレーターは多くの場合、より優れている/高速です。
  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 に答える