Andengine动态壁纸中的定位问题

时间:2013-07-22 06:06:37

标签: android andengine screen-orientation live-wallpaper onconfigurationchanged

我在市场上有一个动态壁纸,对于potrait模式运行得很好,但是一旦它在风景中......它看起来很紧张。我在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()方法,但它给了我一个nullpointer异常。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

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