我在市场上有一个动态壁纸,对于potrait模式运行得很好,但是一旦它在风景中......它看起来很紧张。我在andengine开发了壁纸。我通过网络查看我需要实现onConfigurationChanged()方法来处理方向更改。我使用了这里提出的解决方案: -
以下是我的onConfigurationChanged()方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (MODE == 0) {
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
mMainScene.setScale(1);
mMainScene.setPosition(0, 0);
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
mMainScene.setScaleY(1.5f);
mMainScene.setScaleX(0.5f);
mMainScene.setPosition(260, -500);
}
} else if (MODE == 1) {
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
mMainScene.setScaleY(0.5f);
mMainScene.setScaleX(1.5f);
mMainScene.setPosition(-500, 250);
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
mMainScene.setScale(1);
mMainScene.setPosition(0, 0);
}
}
}
现在的问题是,当我在预览模式下看到我的壁纸时,我的mMainScene向右移动了260像素,正如我在onConfigurationChanged()方法中指定的那样。我认为这个问题可以解决,如果我可以检测到我的壁纸何时处于预览模式,但我似乎无法找到如何?我确实尝试了BaseWallpaperGLEngine.isPreview()方法,但它给了我一个nullpointer异常。有人能帮助我吗?
答案 0 :(得分:0)
您可以更正确地处理方向更改,并避免在预览模式下出现问题。看看这个答案:AndEngine portrait distortion with RotationModifier