为什么在调用曲面Changed时重置所有变量?

时间:2013-12-21 20:20:54

标签: android

我有一个扩展surfaceview并实现SurfaceHolder.Callback的类 我只是试图用x和y位置设置一个简单的位图动画,它的位置随时间更新

在我的代码中一切正常,只是当从protrait更改为横向位置或相反时调用surfacechanged方法时,x和y值将重置为默认值

在调用surfacechanged方法后,如何保持x和y位置相同? 我的下一个问题是,如何调整表面变化后,我如何才能保持游戏方向仅仅是一个版本并且永远不会变成风景? 任何帮助都会很棒?

THX

1 个答案:

答案 0 :(得分:0)

AndriodManifest.xml中的

机器人:configChanges

  

列出活动将自行处理的配置更改。什么时候   在运行时发生配置更改,活动将关闭   默认情况下重新启动,但使用此声明配置   属性将阻止活动重新启动。相反,   活动仍在运行,其onConfigurationChanged()方法是   调用。

     

注意:应避免使用此属性,并仅将其用作最后一个   采取。有关更多信息,请阅读处理运行时更改   关于如何正确处理由于配置更改而导致的重启。

所以这样写吧

android:configChanges="orientation|screenSize"

http://developer.android.com/guide/topics/manifest/activity-element.html

但建议仔细阅读

http://developer.android.com/guide/topics/resources/runtime-changes.html

最好在

中处理此问题
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

// Your code
}