我开发了一个绘图应用程序。我需要执行撤消和重做操作。必须通过在撤消描边上绘制相同的描边来进行撤消,但是要使用特殊的涂料。有一些我的绘画可以绘制和撤消:
val mainPaint = Paint().apply {
color = Color.WHITE
style = Paint.Style.STROKE
alpha = 25
xfermode = PorterDuffXfermode(PorterDuff.Mode.ADD)
isAntiAlias = true
}
val undoPaint = Paint().apply {
color = Color.WHITE
style = Paint.Style.STROKE
alpha = 25
xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_OUT)
isAntiAlias = true
}
首先,我用mainPaint
绘制了第一笔画:
然后我用相同的mainPaint
在第二笔画上绘制第二笔画:
最后,我再次使用undoPaint
绘制了第二个笔划,以实现撤消操作:
如您所见,结果看起来不像撤消。撤消后,我希望状态像我所附的第一张照片一样。我做错了什么?我该怎么解决?我该如何构建undoPaint
?