我准备了一个油漆应用程序。在我的应用程序中,我们可以绘制任何东西。它工作正常。在这里我想准备擦除油漆擦除。橡皮擦正在工作,但它是橡皮擦所有绘制的油漆。我想要橡皮擦只有我触摸的地方,如果绘制的油漆是我写的那些代码,
这是我的提款方法,
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);
}
}
绘制油漆工作正常。在同一活动中,我有一个按钮“橡皮擦”。当我们点击橡皮擦按钮时,我会为差异分配标志。请帮我解决这个问题......
答案 0 :(得分:0)
对于矢量基础画布,它是删除矢量元素。 对于像素基础画布,它的意思是使用backgournd颜色绘制。 (或使其透明)
所以在我看来。擦除时您可以使用backgournd颜色更改Paint。并继续通过触摸在位图上绘制一条非常粗的线。
答案 1 :(得分:0)
试试这个
mBitmap.eraseColor(Color.TRANSPARENT); // Bitmap erase color
mPath.reset(); // your path
mView.invalidate(); // your View Path