我想做的是:

  • 检测设备的当前布局方向(纵向,横向向左,纵向(上下颠倒),横向向右)
  • 区分两种可能的风景模式(倾斜在左侧,倾斜在右侧)
  • 支持以自然状态为景观的设备(for examplediscussed here)
  • 支持getRotation())

  • 只是为了澄清一下,我想知道布局当前所处的方向。布局的底部是哪个方向?是肖像吗?在风景中吗?景观是左还是右?等等。

    我能找到的最接近的是Activity.getResources().getConfiguration().orientation,但是它只返回三个可能的值。 ORIENTATION_LANDSCAPE,ORIENTATION_PORTRAIT或ORIENTATION_SQUARE。它没有说出哪种类型的景观。

    所以,然后我想,如果我可以获取设备的方向值(例如90、180、270等)并将其与上述配置值进行比较,我就能弄清楚。例如,如果配置值为ORIENTATION_LANDSCAPE且方向为270,则可以看出它处于反向横向模式。但是,似乎没有一种简单的方法来获取方向值。我可以实现一个OrientationEventListener,但是这似乎有点过头了,因为我只需要在特定时间获取一次值即可,而不是经常获取。

    Display类中有两个值,但不建议使用getOrientation,而getRotation仅适用于2.2及更高版本。

    现在,即使我确实获得了这一值(value),仍然存在自然而然的设备问题。这意味着它们的0值将是横向而不是纵向。因此,我还需要一种确定的方式来确定哪个(左横向,右横向或纵向)对应于0。

    关于定向和类似问题,有很多关于SO的文章,但是我还没有看到将所有这些问题都考虑在内的文章。有人知道吗?

    说完所有内容后,我想要类似Activity.getResources()。getConfiguration()。orientation之类的东西,但能够知道它是哪种风景模式。

    最佳答案

    直到2.2,才支持正确的景观。
    您需要在选项中或以下选项中选择

    关于android - 如何在支持自然景观设备的情况下检测左侧风景(正常)与右侧风景(反向)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5088856/

    10-12 03:11