2012-03-16 41 views
2

我准备了一个涂料app.in我的应用程序,我们可以绘制任何东西。它工作正常。在这里我要准备手指擦除擦除paint.Eraser工作,但它是橡皮擦所有绘制paint.I想橡皮擦只有当我联系,如果抽漆是有,我写了一些代码,如何在android中使用手指橡皮擦?

这是我的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); 

    } 

} 

平局油漆工作fine.In相同的活动,我有一个按钮,“橡皮擦”。当我们点击橡皮按钮我分配标志的区别。请帮助我如何做到这一点...

回答

0

首先你需要清楚擦除什么。

矢量基础画布它的删除矢量元素。 对于像素基本画布,它意味着绘制与backgournd颜色。 (或使它的透明度)

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

+0

已经我试着用透明颜色它不工作 – 2012-03-16 08:23:12

0

尝试这样

   mBitmap.eraseColor(Color.TRANSPARENT); // Bitmap erase color 
       mPath.reset();  // your path 
       mView.invalidate(); // your View Path