0

我在市场上有一个动态壁纸,在肖像模式下运行得非常好,但是一旦它在风景中......它看起来很紧张而且很糟糕。我在andengine中开发了壁纸。我浏览了网络,发现我需要实现 onConfigurationChanged() 方法来处理方向变化。我使用了这里提出的解决方案:-

http://www.andengine.org/forums/live-wallpaper-extension/orentation-problem-landscape-portrait-t10669.html

以下是我的 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() 方法,但它给了我一个空指针异常。有人能帮我吗?

4

1 回答 1

0

您可以更正确地处理方向更改,并避免在预览模式下出现问题。看看这个答案:AndEngine 人像失真与 RotationModifier

于 2013-09-18T08:01:49.083 回答