2011-06-16 24 views
0

タッチリスナーを使用して画面に線を描きたいが、線をもう一度描こうとすると前の線が消去される。私は以下のコードを使用しています。Android - 線を描く

問題の解決方法が見つかりません。助けてください。

public class Drawer extends View 
{ 
    public Drawer(Context context) 
    { 
     super(context); 
    } 

    protected void onDraw(Canvas canvas) 
    { 
     Paint p = new Paint(); 
     p.setColor(colordraw); 
     canvas.drawLine(x1, y1, x2 , y2, p); 
     invalidate(); 
    } 
} 

答えて

0

Uはもともとそれは、 保護された無効onDraw(キャンバスキャンバス) たキャンバスオブジェクトを使用して線を引くが、ウルビットマップオブジェクトを使用して、第2の線を描画しようとすると、キャンバスオブジェクト

protected void onDraw(Canvas canvas) 

{ 
    Paint p = new Paint(); 
    p.setColor(colordraw); 
    p.setColor(Color.BLUE); 
    canvas.drawLine(x1, y1, x2 , y2, p); 
    canvas.drawLine(x1, y1, x2 , y2, p); 
    invalidate(); 
} 
+0

で描画しようとすることができます{ ペイントp =新しいペイント(); p.setColor(colordraw); canvas.drawLine(x1、y1、x2、y2、p); invalidate(); } OnDrawがトリガーされるたびに、前の行が消去されます。最初の行を保持し、タッチリスナーを使用して2行目を描画します。 – sanchit