4

( AndroidManifest.xmlで)特定の方向でアクティビティをロックする方法を知っています:

android:screenOrientation="landscape|portrait"

プログラムで特定の方向にロックする方法を知っています。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)

しかし、どうすればアクティビティをで開始した方向にロックできますか?たとえば、ポートレートを開始した場合は、それに固執する必要があります。

ありがとう!

4

3 に答える 3

5

アプリの起動時に使用getResources().getConfiguration().orientationし、上記のようにプログラムで向きを設定します。メソッドは、またはのいずれ ORIENTATION_LANDSCAPEか を返します。ORIENTATION_PORTRAIT

于 2013-03-07T22:14:44.503 に答える
1

解決策を見つけました:

switch (((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay().getRotation()) {
  case Surface.ROTATION_90:
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    break;
  case Surface.ROTATION_180:
    setRequestedOrientation(9/* reversePortait */);
    break;
  case Surface.ROTATION_270:
    setRequestedOrientation(8/* reverseLandscape */);
    break;
  default :
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

ここで見つけました。

于 2013-03-08T01:16:37.713 に答える
0

これは私がそれを行う方法です:

android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation"

マニフェストのアクティビティで

于 2013-03-07T22:20:34.193 に答える