我一直在搜索整个晚上以某种方式为我的绘图应用程序实现橡皮擦功能。最常见的答案是简单地绘制背景颜色或图像,但这种解决方案不适用于我的应用程序,因为我实现了多个图层(Gimp/Photoshop风格)。如何在Android中为绘图应用程序实现橡皮擦
用户应该能够用尽可能多的图层中提供的画笔工具绘制线条(我的drawingview的onDraw方法将layer0 ... layerX绘制在彼此之上)。然后,如果他们选择橡皮擦工具,它应该导致他们追踪的当前图层的任何区域变得透明。
我似乎无法找到合适的内置类/函数,但我不确定如何自己编写它。我试图做类似
Paint paint = new Paint();
paint.setAlpha(0);
,然后使用喷漆的对象进行绘制,但只绘制了一个“隐形”线。
我也尝试使用
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
但只是似乎画正常的和没有效力。我可能错误地使用了它,但Android文档没有包含它所做的明确描述。我只是碰巧在一些关于修改位图的例子中看到它。
我可以根据需要提供代码,我只是不确定什么会有助于解决我的问题。指向正确的方向将是最大的帮助,因为我没有在Google上取得成功。
因为之前的演示代码不再可用,并且此链接是一个比另一个更好的教程是,我改变这是被接受的答案。 – Robert 2013-11-10 01:13:30