我已经准备了一个绘画应用程序。在我的应用程序中,我们可以绘制任何东西。它工作正常。在这里,我要准备手指擦除以擦除油漆。我触摸是否有油漆,因为我写了一些代码,
这是我的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。并继续通过触摸在位图上绘制非常粗线。