1

我正在制作动态壁纸。墙纸要求小的可移动图像位于具有透明区域的大型固定图像后面。较小的图像仅在它们位于大图像的透明部分时才可见。

到目前为止,我是这样做的:

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

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

4

1 回答 1

4

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

于 2010-12-05T00:51:19.300 回答