在android中锁定屏幕方向

时间:2012-12-23 02:31:33

标签: android

我希望我的活动在设备转动时不要旋转。 使用

android:screenOrientation="nosensor"

会禁用方向更改,但有一点需要注意:活动会切换到纵向模式。我只是希望它保持当前的方向(例如,如果在活动开始时屏幕处于横向,则即使在旋转设备时也保持横向模式)。这不是“nosensor”似乎在做什么。它似乎只是与“肖像”完全相同的行为。我使用它错了吗?

我尝试使用setRequestedOrientation( getRequestedOrientation ),但如果当前请求的方向未定义,那么我的活动将会轮换。我只是想“锁定”有效的屏幕旋转。

1 个答案:

答案 0 :(得分:3)

您可以做的是告诉Android您将自己处理方向配置更改。您可以通过为orientation标记的android:configChanges属性指定activity来执行此操作。

<activity android:name=".MyActivity"
          android:configChanges="orientation"
          android:label="@string/app_name">

有关详细信息,请参阅此链接 http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

至于为什么nosensor不起作用,是因为文档中提到了它。

  

确定方向而不参考物理方面   方向传感器。传感器被忽略,因此显示器不会   根据用户移动设备的方式进行旋转。除此之外   区别,系统使用相同的策略选择方向   至于“未指明”的设置。

以及文档中的unspecified

  

默认值。系统选择方向。政策呢   使用,因此在特定环境中做出的选择可能会有所不同   从设备到设备。