我已经准备了一个绘画应用程序。在我的应用程序中,我们可以绘制任何东西。它工作正常。在这里,我要准备手指擦除以擦除油漆。我触摸是否有油漆,因为我写了一些代码,

这是我的ondraw方法

public void onDraw(Canvas canvas) {

    if (myDrawBitmap == null) {
        myDrawBitmap = Bitmap.createBitmap(480, 800,
                Bitmap.Config.ARGB_8888);
        mBmpDrawCanvas = new Canvas(myDrawBitmap);
        mIntDrawArray = new int[myDrawBitmap.getWidth()
                * myDrawBitmap.getHeight()];
    }
    if (mBmpDrawCanvas != null) {
        myDrawBitmap.getPixels(mIntDrawArray, 0, myDrawBitmap.getWidth(),
                0, 0, myDrawBitmap.getWidth(), myDrawBitmap.getHeight());
        for (Path path : ILearnPaintActivity.mArryLstPath) {
            if (ILearnPaintActivity.mArryLstPath.contains(path)
                    && ILearnPaintActivity.paintAndEraserFlag == 1) {
                mPaint.setXfermode(new PorterDuffXfermode(
                        PorterDuff.Mode.CLEAR));
                mBmpDrawCanvas.drawPath(ILearnPaintActivity.mPath, mPaint);
            } else {
                mBmpDrawCanvas.drawPath(ILearnPaintActivity.mPath, mPaint);
            }

        }
        if (myDrawBitmap != null)
            canvas.drawBitmap(myDrawBitmap, 0, 0, null);

    }

}


绘画工作正常。在同一活动中,我有一个按钮“橡皮擦”。当我们单击橡皮擦按钮时,我会为差异分配标志。请帮助我如何做...

最佳答案

首先,您需要弄清楚擦除的内容。

对于矢量基础画布,它是删除矢量元素。
对于像素基础画布,它是指使用背景色绘制的图像。 (或使其透明)

所以在我看来。擦除时。您可以更改背景色的Paint。并继续通过触摸在位图上绘制非常粗线。

10-08 11:17