我们可以阻止应用程序进入纵向模式,同时允许它在两种横向模式之间切换吗?

时间:2014-06-25 06:32:01

标签: android android-layout android-activity

我希望我的Android应用只能保持横向模式。所以,我在manifest.xml文件中使用了它:

android:screenOrientation="landscape"

然而,它将应用程序锁定在横向模式下,即使我将屏幕旋转180度,它仍保持相同的方向。是否有某种方式可以禁用纵向模式,而允许使用两种风景模式?

3 个答案:

答案 0 :(得分:5)

在您的清单中,将您的活动screenOrientation标记更改为android:screenOrientation="sensorLandscape",然后就完成了。

根据移动传感器,这将使应用程序在两个方向上保持横向模式。

答案 1 :(得分:0)

除了Jagdeep Singh的答案之外,还有docs

  

“sensorLandscape”

     

横向,但可以是正常景观或反向景观   基于设备传感器。 在API级别9中添加。

以下注释会有所帮助:

注意:当您声明其中一个横向或纵向值时, 它被认为是活动运行方向的硬性要求。因此, 您声明的值可以通过Google Play等服务进行过滤,因此您的应用就可以了 仅适用于支持您的活动所需方向的设备。对于 例如,如果您声明"landscape""reverseLandscape""sensorLandscape",那么您的应用程序将仅适用于支持的设备 景观取向。但是,您还应该明确声明 您的应用程序需要使用<uses-feature>的纵向或横向方向 元件。例如,<uses-feature android:name="android.hardware.screen.portrait"/>。这纯粹是一种过滤行为 由Google Play(以及支持它的其他服务)提供,而平台本身则没有 控制当设备仅支持某些方向时是否可以安装您的应用程序。

答案 2 :(得分:0)

每个活动的onCreate方法:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);