如果我的代码是这样,我将如何删除 Canvas 上绘制的图像?我将把删除过程放在哪里?我试过使用 canvas.drawColor(Color.BLACK);
但它不起作用。
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(eventX, eventY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(eventX, eventY);
break;
case MotionEvent.ACTION_UP:
// nothing to do
break;
default:
return false;
}
// Schedules a repaint.
invalidate();
return true;
}
}
最佳答案
旧线程我知道,但我正在搞乱 API fingerpaint 演示,想清除 Canvas 但不填充纯色(我有背景)。基于上面的@coder_For_Life22 答案,我包括了以下方法:
protected void clear(){
Xfermode x = mPaint.getXfermode();
mPaint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
mCanvas.drawPaint(mPaint);
mPaint.setXfermode(x);
//Schedule redraw()
invalidate();
}
关于android - 如何删除在Canvas中绘制的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388672/