【发布时间】:2013-09-18 16:01:49
【问题描述】:
我在市场上有一个动态壁纸,它在肖像模式下运行得非常好,但是一旦它进入风景模式......它看起来很拉伸而且很糟糕。我在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() 方法,但它给了我一个空指针异常。有人可以帮我吗?
【问题讨论】:
标签: android andengine screen-orientation live-wallpaper onconfigurationchanged