gpt4 book ai didi

android - 如何知道在 'setRequestedOrientation' 之后设备方向发生了变化

转载 作者:太空狗 更新时间:2023-10-29 13:21:51 28 4
gpt4 key购买 nike

我想开发一个视频播放器应用程序,当设备横向时,视频全屏播放,当设备纵向时,视频半屏播放。在风景中,有一个按钮,当用户点击它时,应用程序将强制为纵向(此时,设备仍然水平。我想要的:当用户将设备更改为垂直时,并更改设备再次水平,应用程序可以自动从纵向更改为横向。

我调用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 来强制纵向。在我调用 setRequestedOrientation() 之后,当我将设备从水平更改为垂直时,onConfigurationChanged() 将不再调用。所以没有时间点调用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR)

我尝试了 OrientationEventListener,但是在 onOrientationChanged() 中有很多值会返回。但我只想要设备方向(横向或纵向)。

有没有其他方法可以简单地做我想做的事情?

最佳答案

你必须使用 OrientationEventListener,我这样使用,然后像往常一样使用 onConfigurationChanged:

 OrientationEventListener orientationEventListener = new OrientationEventListener(getApplicationContext()) {
@Override
public void onOrientationChanged(int orientation) {
boolean isPortrait = isPortrait(orientation);
if (!isPortrait && savedOrientation == ORIENTATTION_PORTRAIT) {
savedOrientation = ORIENTATION_LANDSACAPE;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
} else if (isPortrait && savedOrientation == ORIENTATION_LANDSACAPE) {
savedOrientation = ORIENTATTION_PORTRAIT;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
}
}
};
orientationEventListener.enable();

private boolean isPortrait(int orientation) {
if (orientation < 45 || orientation > 315) {
return true;
}
return false;
}

您在这里有更多信息:https://developer.android.com/reference/android/view/OrientationEventListener.html

关于android - 如何知道在 'setRequestedOrientation' 之后设备方向发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27616304/

28 4 0
文章推荐: javascript - 使用javascript取消注释html代码
文章推荐: javascript - 从 child 到 parent 的跨站点 iframe postMessage
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com