0

当我打开一个活动时,我希望该活动保持在打开的那个方向。
例如,如果我在 PORTRAIT 模式下打开它,那么用户将无法将其更改为横向,而当我在 LANDSCAPE 模式下打开它时,用户将无法更改为纵向。(我需要这个作为视频播放器)

为此,我获取当前屏幕方向,然后设置它,如下所示:

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

如果我在 PORTRAIT 模式下打开 Activity,并尝试通过旋转手机切换到 LANDSCAPE,它不会 - 这是预期的。问题是,如果在 LANDSCAPE 中打开活动并且我尝试旋转到纵向 - 它确实如此。

我不明白为什么会发生这种情况。

代码出现在 onCreate() 的 setContentView() 上方

4

2 回答 2

2

问题在于getResources().getConfiguration().orientation并且setRequestedOrientation(orientation);使用不同的常数。您可以尝试阅读它们的文档,并在它们之间进行映射。

于 2012-06-11T16:28:15.367 回答
1

试试这个:

@Override
    public void onResume() {
        super.onResume();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

    }
于 2012-06-11T16:28:43.247 回答