2017-01-12 13 views
1

私はキャンバスに矩形を描くために以下のコードを使用しました。最初の座標はユーザーが最初に画面に触れる場所です。ユーザーが画面上で指を動かすと、キャンバス上に複数の矩形を描画する

問題:1つの矩形だけを描画することができます。最初の1つが消える(私が望む数だけ描画したい)場合は、矩形を描画することができます。

第2の問題:同じ方法で三角形と円を描く方法は?

コード:

//In a custom view class 
int mStartX; 
int mStartY; 
int mEndX; 
int mEndY; 

Paint paint = new Paint(); 

//I did constructor and everything......... 

//Drawing the rectangle in on draw 
@Override 
protected void onDraw(Canvas canvas) { 

super.onDraw(canvas); 

canvas.drawRect(mStartX, mStartY, mEndX, mEndY, paint); 
} 


//updating the coordinate variables on touch 

@Override 
public boolean onTouchEvent(MotionEvent event) { 

switch (event.getActionMasked()) { 

    case MotionEvent.ACTION_DOWN: 

     mStartX = (int) event.getX(); 
     mStartY = (int) event.getY(); 

     break; 

    case MotionEvent.ACTION_MOVE: 

     mEndX = (int) event.getX(); 
     mEndY = (int) event.getY(); 

     invalidate(); 

     break; 

    case MotionEvent.ACTION_UP: 


     mEndX = (int) event.getX(); 
     mEndY = (int) event.getY(); 

     invalidate(); 

     break; 

    default: 

     return false; 

     break; 
} 

return true; 
} 

答えて

0

私は最初のものは、あなたが無効()コマンドを呼び出すという理由だけで

を消える秒1を描きたいです。

onDraw(Canvas canvas)がinvalidate()の後に呼び出したときに、draw(スプライト)オブジェクトを作成して描画座標を描画し、このオブジェクトコレクションを描画できます。

第2の問題:同じ方法で三角形と円を描く方法は?

必要なコマンド

を見つけること thisを読みます
関連する問題