我正在使用kotlin创建一个简单的绘图应用程序。我想实现一个橡皮擦,但找不到任何合适的解决方案。每种解决方案要么使用白色作为橡皮擦的替代品,要么在单击橡皮擦按钮后完全重置画布。因为我还实现了从画廊导入背景图片的功能,所以我不能使用白色作为橡皮擦。
发布于 2021-09-08 09:12:39
画布上没有魔术橡皮擦,因为擦除只是在画布上画些东西。您不能将paint颜色设置为Transparent并在画布上绘制来擦除已绘制的内容。这只是简单地绘制了一些透明的东西,基本上什么都没有。
因此,您将需要使用Color实现一个橡皮擦。通常这是白色的,因为背景通常设置为白色。因此,这给人一种擦除内容的感觉。
在您的例子中,您有一个背景图像。为了实现这个橡皮擦,你需要2个画布。背景图像将在第一个画布中绘制。所有其他内容(drawCircle、drawRect、drawPath等)画在第二张画布上。现在,您可以将bitmap从第二个画布中取出,并在第一个画布(drawBitmap)中绘制它。这给出了最终的外观。现在,在这个设置中,您可以使用“白色”作为颜色来从第二个画布中擦除。当绘制第二个画布内容到第一个画布上时,使用其中一个PorterDuff mode,这样“白色”就消失了。
https://stackoverflow.com/questions/68867352
复制相似问题