0

少なくともデバイス上のAndroidの向きの変更に問題があるようです。[設定]-[アプリ]-[実行中]に移動し、[-キャッシュされたプロセスを表示]を選択してから、方向を反転して-[実行中のプロセスを表示]を選択します。私のアプリにはユースケースがあります。デバイスの向きを使用していくつかのオプションを表示しますが、それは尊重されていないようです。これに関する提案はありますか?これは私が言及したサンプルフローのせいでしょうか?私はこれを使ってオリエンテーションを取得しました:

getResources().getConfiguration().orientation

そしてこれは回転用です:

Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();
4

1 に答える 1

1

あなたが使用しているものは正しいです、私は2つの組み合わせを使用します

int orientation = getResources().getConfiguration().orientation;
int rotation = getWindowManager().getDefaultDisplay().getOrientation();

次に、それらを使用して正しい方向を決定します

    if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90) {
            if (orientation == Configuration.ORIENTATION_PORTRAIT) {
                // Portrait 
            }
            else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
                // Landscape
            }
        }
        else if (rotation == Surface.ROTATION_180 || rotation == Surface.ROTATION_270) {
            if (orientation == Configuration.ORIENTATION_PORTRAIT) {
                //Mainly for tablets
            }
            else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
               //Mainly for tablets
            }
        }
于 2013-03-19T06:01:33.653 に答える