Android - 检测反向横向

Posted

技术标签:

【中文标题】Android - 检测反向横向【英文标题】:Android - detect reverse landscape orientation 【发布时间】:2013-08-05 19:09:46 【问题描述】:

我需要检测反向横向,以防止用户开始拍摄垂直视频。

我在 layout-landlayout-port 文件夹中实现了 2 种布局,它们具有不同的控件集。问题是 android 不允许我专门为反向景观创建单独的布局。我需要这个,因为在这种情况下,视频是倒置录制的,尽管 UI 显示正确。

如果我将设备从 0 方向旋转到 180 方向,Android 甚至不会调用我的活动的onCreate(),但在这种情况下视频会翻转。

有人可以建议一个工作示例如何检测某些设备方向(在我的情况下为反向横向)以使用该方向的另一种布局吗?

【问题讨论】:

【参考方案1】:

使用OrientationEventListener 获取手机的方向。

一旦你创建了一个监听器并调用enable(),只要手机的方向改变,onOrientationChanged(int)就会被调用。

然后您可以检查它是否超出了您希望手机进入的范围。

不要忘记使用SENSOR_DELAY_NORMAL 作为您的费率。这样,它只会在您真正关心的方向变化发生时调用,而不是在用户处理手机时通常发生的小变化。

【讨论】:

Sensor.SENSOR_DELAY_NORMAL 将自动应用于OrientationEventListener(context): ***.com/questions/67099521/…

以上是关于Android - 检测反向横向的主要内容,如果未能解决你的问题,请参考以下文章

检测Android方向:横向左v.横向右

Android:如何在设置图像视图时检测从图库中选择的图像方向(纵向或横向)?

检测“samsung galaxy Android 2.3.5”的方向(横向和纵向模式)的事件

检测Android导航栏方向

如何在 Unity 中检测 android 手机旋转?

Android通过usb反向共享(不是root)