适用于WallpaperService.Engine的Android Canvas多层

时间:2010-12-04 20:38:03

标签: android canvas live-wallpaper

我正在制作动态壁纸。壁纸需要小的可移动图像在具有透明区域的大的固定图像后面。较小的图像只有在大图像的透明部分时才可见。

到目前为止,我一直在这样做:

Canvas c = holder.lockCanvas();
c.save()
drawSmallImages(c); //draw the movable images
drawLargeImage(c); //draw the fixed large image
c.restore();

我通过traceview运行它,看起来android正在花费大量的处理能力来绘制大图像,理想情况下我只想在壁纸开始时绘制一次。我不知道如何在较大的图像后面绘制较小的图像,而不是在每帧上的较小图像之后重新绘制大图像。

1 个答案:

答案 0 :(得分:4)

不会清除画布的内容,因此您可以通过清除小部分并使用剪辑矩形仅重绘大部分图像来轻松优化绘图。