动态壁纸在预览模式下

时间:2011-03-30 16:43:32

标签: android live-wallpaper

我需要我的壁纸在预览模式下(具有“设置”和“设置...”的屏幕)采取不同的行动。我怎么知道什么时候画在那里?

3 个答案:

答案 0 :(得分:14)

onCreateEngine()中,您可以使用isPreview()方法。

请注意,onCreateEngine()被“正常”调用两次:一次创建预览实例,然后再实际设置壁纸。

详细信息:http://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine.html

答案 1 :(得分:2)

可以在已实现的引擎的isPreview()方法中调用onCreate(SurfaceHolder holder)方法。不在onCreateEngine方法中作为先前的答案,因为该方法尚未准备好。

答案 2 :(得分:1)

除了代表答案外,我还将写信。 由于预览和非预览引擎实例可以同时存在,因此可以在WallpaperService类(Kotlin中的示例)内添加两个静态实例和一个引擎局部变量:

{data: null}

并将其用于替代功能

    private var engine: OpenGLEngine? = null
    private set
    //...

    companion object {
       private var engineInstance: OpenGLEngine? = null
       private var previewEngineInstance: OpenGLEngine? = null
       //...
    }

通过这种方法,您始终可以在WallpaperService中获取当前引擎实例,并调用其 isPreview