3

设想:

  1. FingerPaint示例为基础
  2. FingerPaint在区域中绘制一些文本
  3. 希望用户能够通过拖动手指来擦除文本的某些部分

参考: 如何用手指擦除油漆

尝试:

它几乎可以到达我想要的位置,但是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采取适当的措施来擦除它被拖动的位图部分,并且在这样做的同时,被拖动的路径应该与绘制到文本下方的画布上的颜色相匹配?

4

0 回答 0