2015-01-21 4 views
1

Я хочу нарисовать некоторые строки в android. Я использую класс SampleView и это OnDraw, как это:Android: Как я могу сохранить все рисунки?

private class SampleView extends View { 

     public SampleView(Context context) { 
     super(context); 
     setFocusable(true); 
     } 
@Override 
protected void onDraw(Canvas canvas) { 
     p.setAntiAlias(true); 
     p.setColor(Color.RED); 
     p.setStyle(Paint.Style.STROKE); 
     p.setStrokeWidth(5); 
     canvas.drawLine(x0, y0, x1, y1, p); 
      } 
} 

мой x0, x1, y0, y1 изменения каждый раз, когда я называю sv.invalidate(). каждый раз, когда он рисует новую строку, моя предыдущая строка очищается ... но я хочу сохранить все строки. Как я могу это сделать?

ответ

1

Вы должны отслеживать линии в компоненте Path. Добавьте путь, когда у вас есть новая линия для рисования. Затем вы можете нарисовать путь внутри onDraw() или очистить путь, когда вам нужно по какой-либо причине.

Path | Android Developers

Одним из примеров может быть что-то вроде этого:

public void onDraw(Canvas canvas) 
{ 
    Path path = new Path(); 
    boolean isFirstPoint = true; 
    for(Point point : points) 
    { 
     if(isFirstPoint) 
     { 
      isFirstPoint = false; 
      path.moveTo(point.x, point.y); 
     } 
     else 
     { 
      path.lineTo(point.x, point.y); 
     } 
    } 

    canvas.drawPath(path, paint); 
} 

Но, конечно, есть много способов сделать это. Метод onDraw предназначен для частого обновления и рисования того, что вы говорите, вы должны сохранять состояние.

+0

Я сделал это ... большое спасибо – jion

Смежные вопросы