2013-12-11 299 views
1

我在這裏搜索了很多找到的答案,但沒有人像1一樣工作。Deleting a path from a canvas - Android 2. How to erase path area from canvas (Android)清空canvas圖像或清除android

我的編碼是:

mClear.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      drawView.clear(); 
      } 
    }); 

public void init() { 
    mPaint = new Paint(); 
    mPaint.setAntiAlias(true); 
    mPaint.setColor(Color.GREEN); 
    mPaint.setStyle(Paint.Style.STROKE); 
    mPaint.setStrokeJoin(Paint.Join.ROUND); 
    mPaint.setStrokeCap(Paint.Cap.ROUND); 
    mPaint.setStrokeWidth(3); 
} 

class DrawingView extends View { 
    Path path; 

    Bitmap mBitmap; 

    Canvas mCanvas; 

    public DrawingView(Context context) { 
     super(context); 
     path = new Path(); 
     mBitmap = Bitmap.createBitmap(820, 480, Bitmap.Config.ARGB_8888); 
     mCanvas = new Canvas(mBitmap); 
     this.setBackgroundColor(Color.WHITE); 
    } 

    public void clear() { 
     path.reset(); 
     invalidate(); 
    } 


    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     mCanvas.drawPath(path, mPaint); 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      path.moveTo(event.getX(), event.getY()); 
      path.lineTo(event.getX(), event.getY()); 
     } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
      path.lineTo(event.getX(), event.getY()); 
     } 
     invalidate(); 
     return true; 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     canvas.drawPath(path, mPaint); 
    } 
} 

我試圖清理一些其他類似如下:

mBitmap = Bitmap.createBitmap(820, 480, Bitmap.Config.ARGB_8888); 
mCanvas = new Canvas(mBitmap); 

我需要一些幫助here..please給一些想法刪除

回答

1

嘗試一些這樣的事情在你的 清除方法,如:

((YourDrawingClass)YourView).clear();