Android画布 - 画一个洞

时间:2013-04-05 19:13:06

标签: android canvas paint ondraw

是否可以在Android中用画布实现以下图片?

Picture with Hole

我想要一个洞,而不仅仅是一个黄色的红色圆圈。我在onDraw() - 方法:

中使用以下代码尝试了这个(并且失败了)
canvas.drawBitmap(yellow, 0, 0, paint);
canvas.drawBitmap(red, 0, 200, paint);
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
canvas.drawCircle(300, 300, radius, p);

但是当我使用这个代码时,它会在两个位图上形成一个漏洞。最后,这个应用程序应该是一个带有球,洞和其他东西的迷宫。当球落入一个洞时,它应该出现在红色位图下面。有可能意识到这一点吗?

答案:

如果有人遇到同样的问题:使用查看而不是SurfaceView。这是我的错,因为SurfaceView的bg无法设置透明。

1 个答案:

答案 0 :(得分:2)

我认为你误解了画布/位图是如何工作的。没有存储图层或对象(除非您存储它们)。它只是所显示图像的逐像素表示。红色方块上的黄色圆圈 您在上图中显示的内容。

如果你真的想要一个红色图层,你必须合成两个位图。在一个位图中的红色正方形上绘制孔,在一个位图中绘制黄色图层。在画布上,绘制黄色位图,然后在顶部绘制“带孔的红色正方形”位图。