首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在我的绘图应用中实现一个真正的橡皮擦?

如何在我的绘图应用中实现一个真正的橡皮擦?
EN

Stack Overflow用户
提问于 2021-08-20 19:39:23
回答 1查看 72关注 0票数 0

我正在使用kotlin创建一个简单的绘图应用程序。我想实现一个橡皮擦,但找不到任何合适的解决方案。每种解决方案要么使用白色作为橡皮擦的替代品,要么在单击橡皮擦按钮后完全重置画布。因为我还实现了从画廊导入背景图片的功能,所以我不能使用白色作为橡皮擦。

EN

回答 1

Stack Overflow用户

发布于 2021-09-08 09:12:39

画布上没有魔术橡皮擦,因为擦除只是在画布上画些东西。您不能将paint颜色设置为Transparent并在画布上绘制来擦除已绘制的内容。这只是简单地绘制了一些透明的东西,基本上什么都没有。

因此,您将需要使用Color实现一个橡皮擦。通常这是白色的,因为背景通常设置为白色。因此,这给人一种擦除内容的感觉。

在您的例子中,您有一个背景图像。为了实现这个橡皮擦,你需要2个画布。背景图像将在第一个画布中绘制。所有其他内容(drawCircle、drawRect、drawPath等)画在第二张画布上。现在,您可以将bitmap从第二个画布中取出,并在第一个画布(drawBitmap)中绘制它。这给出了最终的外观。现在,在这个设置中,您可以使用“白色”作为颜色来从第二个画布中擦除。当绘制第二个画布内容到第一个画布上时,使用其中一个PorterDuff mode,这样“白色”就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68867352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档