Android使用手指擦除位图透明度并匹配背景

Android使用手指擦除位图透明度并匹配背景,android,canvas,transparency,Android,Canvas,Transparency,场景: 使用FingerPaint示例作为基础 在FingerPaint区域中绘制一些文本 希望用户能够通过在文本上拖动来用手指擦除文本的某些部分 参考: 尝试: 它几乎达到了我想要的位置,但是使用SRC和CLEAR时,拖动路径是黑色的。我希望拖动路径是绘制到画布上的颜色,而不必随着手指的移动重新绘制整个画布 如果您知道FingerPaint,他们会这样做: canvas.drawColor(0xFFAAAAAA); 我通过drawText在画布上写了一些黑色文字。 然后,我尝试了以下组合以

场景:

  • 使用
    FingerPaint
    示例作为基础
  • FingerPaint
    区域中绘制一些文本
  • 希望用户能够通过在文本上拖动来用手指擦除文本的某些部分
  • 参考:

    尝试:

    它几乎达到了我想要的位置,但是使用
    SRC
    CLEAR
    时,拖动路径是黑色的。我希望拖动路径是绘制到画布上的颜色,而不必随着手指的移动重新绘制整个画布

    如果您知道FingerPaint,他们会这样做:

    canvas.drawColor(0xFFAAAAAA);
    
    我通过drawText在画布上写了一些黑色文字。
    然后,我尝试了以下组合以允许用户删除文本:

    mPaint.setColor(0xFFAAAAAA);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    
    mPaint.setColor(Color.TRANSPARENT);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    
    mPaint.setColor(0x00AAAAAA);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    
    您可以将
    CLEAR
    模式替换为
    SRC
    模式,将这三个模式相乘,并显示相同的结果

    问题:

    有人知道如何让我的擦除
    drawPath
    采取适当的操作来擦除它被拖动的位图部分,并且在执行此操作时,被拖动的路径应该与文本下方画布上绘制的颜色相匹配吗