android - 如何删除在Canvas中绘制的图像?

标签 android

如果我的代码是这样,我将如何删除 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/

相关文章:

android - Kotlin 1.6.0 打破了proguard?

java - asyncTask 中的 findViewById()

android - 如何在android中使自定义 View 透明

android - 仍在检索已删除的 Firestore 文档

android - Android中的键盘保护是什么?

android - 使用 CoordinatorLayout、Swipe2Refresh 和 WebView 时布局顶部的工具栏

java - 安卓工作室模块

android - 我正在尝试通过 adb 测试 android 深层链接 url 以启动我的应用程序

android - 实例化核心 Volley 对象

java - Android Google Map V3 PolyLine无法绘制