Android - 从纵向/横向切换方向会将属性重置为默认设置

时间:2015-04-07 20:55:28

标签: android orientation landscape portrait

我正在构建一个简单的Android游戏,我想在纵向和横向视图中工作。我在xmllayout中创建了单独的layout-land个文件。在我的清单文件中,我有android:configChanges="orientation|screenSize|keyboardHidden"

在游戏过程中发生屏幕旋转时会出现问题。有一些图像开始游戏时看不见,然后在游戏过程中变得可见。如果在游戏过程中屏幕方向发生变化,这些图像的所有属性都会重置为xml文件中的默认设置为不可见,因此现在游戏无法播放,因为所有突然的图像都会消失。

我的问题是:当屏幕方向发生时,如何保留所有视图的更新属性?

此外,我必须通过onCreate方法添加活动来强制启动活动:

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)                {
        setContentView(R.layout.activity_main);
    }else {
        setContentView(R.layout.activity_main_land);
    }

并手动添加onConfigurationChanged方法以强制正确显示方向更改。我是否必须在此处手动执行所有这些属性更新?

1 个答案:

答案 0 :(得分:0)

您可以使用onSaveInstanceState()方法保存游戏状态,并使用onRestoreInstanceState()恢复

见: