2

私が開始した向きにとどまる必要のあるアプリを作っています。 私はそれを常に肖像画にするか、常に私はそれが肖像画で始まるか、風景から始まり、破壊されるまで同じ方向にとどまることができるようにする必要があります。AndroidアプリがAPIレベルで起動するように強制します<012

現在、私は私のonCreate()方法で

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 

を使用していますが、それはAPI level 18以上が必要と私はAPIレベル15以上で動作するように私のアプリを必要としています。あなたは何かを提案できますか?ここで

+0

アプリ起動時には、初期の向きを取得するために 'getRequestedOrientation()'を使います。シングルトンクラスに保存し、各アクティビティでこのシングルトンクラスにアクセスして方向を取得し、すべてのアクティビティで初期方向を設定するために 'setRequestedOrientation()'を使用します。 –

答えて

1

は一例です、あなたがそのセットポートレートモード現在の画面構成を取得し、yesの場合、画面が縦長モードである場合、すべてのAndroidデバイス

これは、最初に確認する上で、それをロックするために使用することができますスニペットそうでない風景

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){ 
     this.setRequestedOrientation(
       ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } else{ 

     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 
+0

迅速な返信をありがとう!私は最終的にあなたのアイデアを使用しましたが、方向が横向きか逆向きかをチェックする方法が見つからなかったので、 'getDefaultDisplay()。getRotation()'をチェックしました。 –

+0

よく 'getWindowManager()。getDefaultDisplay()。getRotation()'は、ディスプレイの「自然な」方向を基準にして回転を返します。つまり、タブレットの場合、風景モードでは「Surface.ROTATION_0」を返します。ポートレートに同じ値を返します。 – Max

+0

したがって、180度と270度の回転を扱う必要があるのは、逆の向きが使用されるためです。私はテストするデバイスを持っていませんが、回転が0の風景がありますが、 'getResources()。getConfiguration()。orientation'がポートレートまたは風景を返し、ポートレートを逆に設定すると、または風景。 –

関連する問題