我正在使用著名的glsurfaceview包装器(http://www.rbgrn.net/content/354-glsurfaceview-apadapted-3d-live-wallpapers)为Android编写3D实时壁纸

当我打开首选项屏幕以更改壁纸设置时,设置将在我的壁纸预览中显示为透明。这很好,因为它使我可以预览设置更改。除了一个问题外,这也很棒:只要设置在其顶部,实时墙纸就会暂停!

如何避免墙纸暂停?

有帮助吗?

解决方案

我想出了一个解决方法,这取决于您的墙纸的功能。

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

在现场壁纸中 onCreate 方法,我动态注册了 BroadcastReceiver 接收这些设置事件。我解开了这个接收器 onDestroy.

收到设置广播时,我让墙纸绘制一个带有新设置的框架。由于设置活动是透明的,因此这立即使用户了解所选设置的壁纸外观。

同样,使用这种方法,您可以安排墙纸在更改设置后或适合您实施后的几秒钟动画。

其他提示

我发现这也很烦人。我简单地打电话给我完全避免了问题 finish() 在我的设置活动中,只要进行更改。这允许为用户提供即时完整的壁纸预览。只需单击即可返回设置以进行另一个更改,这使用户体验相当不错。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top