打开应用程序并更改方向时,防止动态壁纸方向更改?

时间:2010-12-07 02:44:41

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

我在编写动态壁纸的方向问题。基本上,画布将根据在其上方打开的应用程序旋转。我测试了这一点并意识到onSurfaceChanged()方法在我从之前打开的应用程序返回主屏幕时触发,该应用程序的方向已更改。

我想更好的问题是,为什么我的动态壁纸表面会在应用程序打开时发生变化并且方向发生变化?有没有办法防止我的动态壁纸定位发生变化?谢谢,希望有意义吗?

2 个答案:

答案 0 :(得分:1)

Android应用程序在方向更改时重新启动活动。 你可以使用

    清单中的
  1. android:configChanges 。默认情况下,当运行时发生配置更改时,活动将关闭并重新启动,但声明具有此属性的配置将阻止活动重新启动。相反,活动仍在运行,并调用其onConfigurationChanged()方法。
  2. 使用 android:screenOrientatin =“人像”或“风景”,它会强制应用以您指定的模式运行。但是,它不会阻止活动被关闭和重新启动。

答案 1 :(得分:1)

您可以使用以下方法从android.service.wallpaper.WallpaperService。引擎类中处理屏幕方向:

public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)

...只是相应地处理事件。

不能 android:configChanges android:screenOrientation 添加到WallpaperService! (创建动态壁纸时使用的)

我会将此作为对“Anirudha”答案的评论添加,但我没有足够的声誉这样做。