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();
     }
}

person sanchit    schedule 16.06.2011    source источник


Ответы (1)


вы можете нарисовать линию, используя объект холста, но вы пытаетесь нарисовать вторую линию, используя растровый объект, попробуйте нарисовать объект холста

 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();
 }
person Taruni    schedule 16.06.2011
comment
изначально это было protected void onDraw(Canvas canvas) { Paint p = new Paint(); p.setColor(colordraw); canvas.drawLine(x1, y1, x2, y2, p); признать недействительным(); } но всякий раз, когда запускается OnDraw, он стирает предыдущую строку. Я хочу сохранить 1-ю строку и нарисовать 2-ю строку с помощью прослушивателей касания... - person sanchit; 16.06.2011