2012-03-16 72 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