11

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

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

4

2 回答 2

2

您可以在 android.service.wallpaper.WallpaperService 中处理屏幕方向。具有以下方法的引擎类:

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

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

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

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

于 2014-10-27T20:00:31.730 回答
1

当方向改变时,Android 应用程序会重新启动 Activity。您可以使用

  1. 清单中的android:configChanges。当运行时发生配置更改时,活动默认关闭并重新启动,但使用此属性声明配置将阻止活动重新启动。相反,活动保持运行并onConfigurationChanged()调用其方法。
  2. 使用android:screenOrientatin = " portrait " 或 " landscape " 它将强制应用程序以您指定的模式运行。但是,它不会阻止活动被关闭和重新启动。
于 2013-01-13T11:14:06.313 回答