2

我正在使用著名的 GLSurfaceView 包装器(http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers)为 android 编写 3d 动态壁纸

当我打开首选项屏幕以更改壁纸设置时,这些设置在我的壁纸预览中显示为透明。这很好,因为它可以让我预览我所做的设置更改。这很好用,除了一个问题:只要设置在它上面,动态壁纸就会暂停!

我怎样才能避免我的壁纸暂停?

4

2 回答 2

2

我想出了一个可能有用的解决方法,具体取决于你的壁纸的功能......

在我的设置活动中,每当用户进行更改(例如移动滑块、选中复选框)时,我都会广播Intent相关设置信息。

在动态壁纸的onCreate方法中,我动态注册了一个BroadcastReceiver来接收这些设置事件。我在onDestroy.

当接收到设置广播时,我让壁纸使用新设置绘制单帧。由于设置活动是透明的,这会立即让用户了解壁纸在所选设置下的外观。

类似地,使用这种方法,您可以安排墙纸在设置更改后的几秒钟内设置动画 - 或任何适合您的实施的时间。

于 2011-04-10T09:43:46.193 回答
0

我也觉得这有点烦人。finish()每当进行更改时,只需调用我的设置活动,我就完全避免了这个问题。这允许用户即时、完整地预览壁纸。只需单击一下即可返回设置以进行另一项更改,并且可以提供相当不错的用户体验。

 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
            String key) {
       finish();
 }

我在我的壁纸系列中使用了它。是一个例子:

于 2012-08-20T18:30:46.380 回答