将程序更改为动态壁纸

时间:2011-10-10 22:49:00

标签: android live-wallpaper

我有一个图形程序,我想操作liveWallpaper ..我经历了几个教程,它看起来很适合模具。

所以我开始但很快就意识到LiveWallpaper不是SurfaceView。

很好..所以我看.. SurfaceHolder obj = getSurfaceHolder();然后一些处理表面的方法..

有人介意给我快速破解..我对onSurfaceChaanged(),OnVisibilityChanged,OnSurfaceCreated(),OnSurfaceDestroyed没有很好的解释。看起来像是你为LiveWallpaper提供了一个很好的布局,你可以使用一个非常通用的模板并将其发出来......

1 个答案:

答案 0 :(得分:1)

我使用以下代码绘制壁纸:

void drawFrame() {
    final SurfaceHolder holder = getSurfaceHolder();

    Canvas c = null;
    try {
        c = holder.lockCanvas();
        if (c != null) {
            //do your drawing here
        }
    } finally {
        if (c != null) holder.unlockCanvasAndPost(c);
    }
}

使用此功能,您可以像以前一样在Canvas上绘图。

我个人不会覆盖onSurfaceChanged()和onSurfaceDestroyed()。我重写onSurfaceCreated()以开始绘图。如果LWP变得可见/不可见,则需要onVisibilityChanged()来启动/停止绘图。