设备旋转时,使用libgdx的应用程序将重新启动

时间:2012-01-05 01:56:53

标签: android rotation libgdx

我使用加速度计制作了一个应用程序,但问题是每当它检测到屏幕旋转时,就会进入主菜单。

我使用下面的代码来禁用旋转,但它仍会检测旋转动作并转到主菜单,尽管它不再成为横向模式。

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

如何阻止此旋转检测?

3 个答案:

答案 0 :(得分:7)

android:screenOrientation="portrait"放入AndroidManifest.xml文件中的activity标记内。该属性定义此特定活动应始终以纵向模式运行,因此Android不会尝试在旋转时更改屏幕方向。

答案 1 :(得分:2)

您还需要添加

android:configChanges="keyboard|keyboardHidden|orientation"

以防止键盘出现或被隐藏时重新启动。

如果您使用此功能,如果您希望游戏在横向和纵向模式下都能正常工作,甚至可以删除android:screenOrientation="portrait"。请参阅libgdx wiki:https://code.google.com/p/libgdx/wiki/ApplicationConfiguration#The_.xml_File

答案 2 :(得分:2)

Kimi的回答是正确的,但是如果你想在亚马逊设备上运行你的游戏,那么你应该添加额外的值" screenSize"。结果将是:

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"