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