在Android中用canvas可以实现如下图吗?
我想要一个洞,而不仅仅是在黄色的红色层上有一个圆圈。我用我的以下代码尝试了这个(但失败了)onDraw()
-Method:
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);
但是当我使用这段代码时,它会在两个位图上打一个洞。最后,这个应用程序应该是一个有球、洞和其他东西的迷宫。当球落入洞中时,它应该出现在红色位图下方。有可能实现这一点吗?
Answer:
如果有人遇到同样的问题:使用View而不是 SurfaceView。那是我的错,因为 SurfaceView 的背景无法设置为透明。
我认为您误解了画布/位图的工作原理。没有存储图层或对象(除非您存储它们)。它只是所显示图像的逐像素表示。红色正方形上方的黄色圆圈is你在上图中所显示的内容。
如果您确实想要一个红色图层,则必须合成两个位图。在一张位图中的红色方块上绘制孔,在一张位图中绘制黄色图层。在画布上绘制黄色位图,然后在顶部绘制“带孔的红色正方形”位图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)