我是Android(以及Java)的新手,我正在做一个简单的游戏。我被卡住了。
我的问题是:
我有2个png图像(背景和前景),它们在启动时占据整个屏幕。我现在希望能够将前景的“绘制部分”的宽度设置为ON_DRAG的x坐标。我的控制方法工作正常;它的使用方式如下:
g.drawRect(0,0,scene.getLine(),g.getHeight(),Color.GREEN);
其中scene.getLine()返回触摸的x值。所以在这一点上,我可以在我的图像上方绘制一个绿色矩形。但我真正想要的是那些矩形尺寸在我的顶层png中“打洞”(因此背景显示在下方)。我不想缩放前景。
我尝试过clipRect,但它不起作用,因为我需要在这两个图像之上绘制其他图像,而clipRect会阻止这种情况。我看了一堆“PorterDuffXfermode”代码,但无法理解如何将它应用到我的情况,并且无法使其工作。即我可以使用PorterDuff“SRC”模式设置Paint,但我不知道如何定义“源”和“目标”图像,因此Paint将发挥其魔力。最后一个考虑是,即使PorterDuff可以工作,我也不确定它是否实用,因为我希望这个东西以60fps运行。
有什么建议吗?
感谢。
答案 0 :(得分:1)
您可以在剪辑前调用canvas.save()
,在绘图后调用canvas.restore()
,将画布返回到开始之前的日期。然后你可以绘制你的其他图像。