Android:阻止方向以编程方式更改

时间:2014-10-27 04:21:28

标签: android dynamic android-studio android-orientation

我正在使用:

setRequestedOrientation(getResources().getConfiguration().orientation);

以及后来:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

它可以防止方向更改,直到任务完成,但它仅适用于肖像,当应用程序处于横向状态时,它不会停止更改方向。

有什么建议吗? OIM〜

2 个答案:

答案 0 :(得分:5)

我现在在所有情况下都能正常工作。

修复屏幕:

if (getWindowManager().getDefaultDisplay().getRotation()== Surface.ROTATION_0)
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
if (getWindowManager().getDefaultDisplay().getRotation()== Surface.ROTATION_90)
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
if (getWindowManager().getDefaultDisplay().getRotation()== Surface.ROTATION_270)
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);

然后再次允许轮换:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

OIM〜

答案 1 :(得分:0)

在您的活动的清单文件中试试这个

    android:screenOrientation="sensorLandscape"
    android:windowSoftInputMode="stateAlwaysHidden" 

清单文件中的内部应用程序标记试试这个

    android:hardwareAccelerated="true"
    android:largeHeap="true"