代码之家  ›  专栏  ›  技术社区  ›  P. Ilyin

如何撤消透明绘图?

  •  2
  • P. Ilyin  · 技术社区  · 6 年前

    我开发了一个绘图应用程序。我需要执行撤消和重做操作。有必要通过在撤消笔划上绘制相同的笔划来实现撤消,但要使用特殊的油漆。这是我用来画画和作画的颜料:

    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

    enter image description here

    然后我以同样的方式在第一杆上画第二杆

    enter image description here

    最后我又画了第二杆,但是 undoPaint

    enter image description here

    如您所见,结果看起来不像撤消。撤消后,我期望状态像我附加的第一张图片。我做错了什么?我该怎么做才能修好它?我必须怎样建造 ?

    0 回复  |  直到 6 年前