2011-12-07 3 views
0

この私のプログラムのコード:以下のコードでキャンバスをクリアするにはどうすればよいですか?

SingleTouchEventはcanvas.onDrawを使用して私のクラスの名前

私は疲れているが、それは唯一の背景を変更します。私が望むのは、キャンバスを別の図面用にクリアすることです。

public class SingleTouchEventView extends View { 
private Paint paint = new Paint(); 
private Path path = new Path(); 


public SingleTouchEventView(Context context, AttributeSet attrs) { 
    super(context, attrs); 

    paint.setAntiAlias(true); 
    paint.setStrokeWidth(6f); 
    paint.setColor(Color.GREEN); 
    paint.setStyle(Paint.Style.STROKE); 
    paint.setStrokeJoin(Paint.Join.ROUND); 


} 

これは画面の色のみを変更します。キャンバスの以前のコンテンツは削除されません。

@Override 
protected void onDraw(Canvas canvas) { 


    canvas.drawColor(Color.BLACK); 
    canvas.drawPath(path, paint); 

} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    float eventX = event.getX(); 
    float eventY = event.getY(); 

    switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     path.moveTo(eventX, eventY); 

     return true; 
    case MotionEvent.ACTION_MOVE: 
     path.lineTo(eventX, eventY); 
     break; 
    case MotionEvent.ACTION_UP: 
     // nothing to do 
     break; 
    default: 
     return false; 
    } 


    // Schedules a repaint. 
invalidate(); 


return true; 
} 



} 
+0

近くにhttp://stackoverflow.com/questions/5729377/android-canvas-how-do-i-clear-delete-contents-of-a-canvas-bitmaps-livin –

+0

canvas.onDrawがどこにあるのでしょうか? – user1081908

答えて

0

call invalidate();

if(isClear) 
{ 
    invalidate();//It'll draw nothing. 
} 
else 
{ 
    do your drawing.. 
} 

または、このリンクを::onDraw関数の最後で、これはのようなチェックを行った後、onDrawを呼び出すおこう How to clear finger paint?

+0

ありがとうございます!上記のチェックをどこに置くのですか? – user1081908

+0

onDraw関数.. –

+0

if(isClear).... – user1081908

0

それを試してみてください。

canvas.drawColor(0, Mode.CLEAR); 
関連する問題