【问题标题】:Android screenOrientation vs RotationAndroid屏幕方向与旋转
【发布时间】:2012-11-14 19:55:58
【问题描述】:

当用户旋转设备时,我正在使用 OrientationEventListener 来正确定位我的活动。我通过调用 Activity.setRequestedOrientation(int) 来定位活动。

我的问题是 OrientationEventListener 从“自然设备位置”返回角度。 setRequestedOrientation 接受诸如 SCREEN_ORIENTATION_PORTRAIT 等参数。要从角度转换为方向,我需要知道“自然设备位置”是什么,即它是横向左侧、横向右侧、纵向还是纵向反转。不幸的是,API 似乎没有办法找出答案。

怎么办?

【问题讨论】:

    标签: android


    【解决方案1】:

    查看此链接:Check orientation on Android phone

    我认为你可以使用 onConfigurationChanged 来在方向改变时被调用。

    【讨论】:

    • 谢谢,但我的问题不是要弄清楚当前的方向(这很容易),而是要从一个角度转换到另一个方向。
    • 啊,我的错,那这就是我想的你想要的? stackoverflow.com/questions/4727800/…
    • 真的很抱歉再次说不,但这涉及如何舍入角度值,使其以 90 度的倍数出现,与我的问题无关。最后一个答案(部分正确)是错误的......我已经完成了谷歌搜索,除非我错过了,否则没有任何明显的东西。这就是我在这里问的原因。
    • 我几乎想继续尝试,这样我们就可以保持这种来回进行,但我停止了! :-) 我现在完全理解这个问题的本质了——祝你好运!
    【解决方案2】:

    您可以使用以下内容:

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

    来自文档:

    Overall orientation of the screen. May be one of ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT.

    问候。

    【讨论】:

    • 谢谢,但我的问题不是确定当前方向(这很容易),而是从传感器返回的角度转换为绝对方向
    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多