我整个晚上都在寻找一些方法来实现我的绘图应用程序的橡皮擦功能。最常见的答案是简单地在中绘制背景颜色或图像,但这种解决方案不适用于我的应用程序,因为我实现了多个图层(Gimp/Photoshop样式)。
用户应该能够使用画笔工具在任意多个图层中绘制一条直线(我的绘图视图的onDraw方法在每个图层上绘制layer0...layerX )。然后,如果他们选择橡皮擦工具,它应该会使当前图层的任何区域变得透明。
我似乎找不到合适的内置类/函数,也不确定如何自己编写它。我试着做一些像这样的事情
Paint paint = new Paint();
paint.setAlpha(0);
然后使用该Paint对象进行绘制,但这只会绘制一条“不可见”的线。
我还尝试使用
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
但这似乎是正常的,没有效果。我可能没有正确地使用它,但Android文档并没有对它的功能进行清晰的描述。我只是碰巧在一些修改位图的例子中看到了它。
我可以提供所需的代码,我只是不确定什么将有助于解决我的问题。被指出正确的方向将是最大的帮助,因为我在谷歌没有成功。
发布于 2013-11-09 01:15:32
你可以在这个链接上找到橡皮擦功能的实现,创建新的画布,画笔功能和保存功能:
create android drawing interface
这是一个非常好的教程,在android上使用运动事件制作绘图应用程序。
发布于 2012-02-13 07:23:43
https://stackoverflow.com/questions/9254528
复制相似问题