Android绘制透明度

时间:2013-02-22 08:04:52

标签: android graphics transparency

我是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运行。

有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在剪辑前调用canvas.save(),在绘图后调用canvas.restore(),将画布返回到开始之前的日期。然后你可以绘制你的其他图像。