是否可以在Android中用画布实现以下图片?
我想要一个洞,而不仅仅是一个黄色的红色圆圈。我在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无法设置透明。
答案 0 :(得分:2)
我认为你误解了画布/位图是如何工作的。没有存储图层或对象(除非您存储它们)。它只是所显示图像的逐像素表示。红色方块上的黄色圆圈 您在上图中显示的内容。
如果你真的想要一个红色图层,你必须合成两个位图。在一个位图中的红色正方形上绘制孔,在一个位图中绘制黄色图层。在画布上,绘制黄色位图,然后在顶部绘制“带孔的红色正方形”位图。