4

我知道如何将活动锁定在特定方向(在AndroidManifest.xml中):

android:screenOrientation="landscape|portrait"

我知道如何以编程方式锁定特定方向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)

但是,如何将活动锁定到开始的方向?例如,如果它开始肖像,它应该坚持下去。

谢谢!

4

3 回答 3

5

getResources().getConfiguration().orientation在您的应用启动时使用,然后像上面那样以编程方式设置方向。该方法将返回 ORIENTATION_LANDSCAPEORIENTATION_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 回答