首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用canvas.save和canvas.restore?

如何使用canvas.save和canvas.restore?
EN

Stack Overflow用户
提问于 2012-01-23 07:45:11
回答 2查看 6.2K关注 0票数 3

可能重复:

Can i save lots of bitmaps to one bitmap? (2d)

我想知道canvas.save和canvas.restore到底是如何工作的。

我想要它如何工作,我如何使用它(但不起作用)。

unlockandpost

  • canvas.save() (存储int)

  • 做更多的drawings

  • Post从步骤3

  • 做更多的绘图,重复从6(循环)

<代码>G 220

我真正需要的是在一定的阶段(背景)保存我的画布,然后在上面画物体,而不用每次我想更新画布时都要画背景。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-23 10:50:47

Canvas.save() & restore()不对附在画布上的位图起作用.它们的存在是为了控制画布绘制环境的各个方面,特别是当前裁剪区域和矩阵。

如果您想要绘制一个旋转的sprite,可以使用save()和restore。要做到这一点,首先保存当前画布状态,然后翻译(),以便原点--像素地址(0,0) --是您希望雪碧进入的地方,然后是旋转(),然后可以是drawBitmap()。最后,您可以将绘图环境恢复到正常状态。

所以你基本上注定每次都要画背景。如果这是一个复杂的操作,将其存储在屏幕外的位图中。只要可以在单个操作(例如,drawBitmap)中绘制背景,性能就不会受到太大影响。

票数 10
EN

Stack Overflow用户

发布于 2012-01-24 09:46:05

好吧,所以我想出来了。我可以用画布把包含很多图像的背景画到一个位图上,这很简单。

首先,创建一个空位图,以期望的int高度和int宽度,这将是位图,您将绘制您的所有瓷砖(小图像)。

位图背景=Bitmap.createBitmap(宽度、宽度、Bitmap.Config.ARGB_4444);

(不确定语法Bitmap.Config.ARGB_4444,请使用工具提示)然后使用新画布(位图)创建画布,这将使画布写入位图。

帆布帆布新画布(背景);

现在您可以随意编写画布,所有内容都将存储在位图中供以后使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8968478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档