Android — перерисовать холст

#android #canvas

#Android #холст

Вопрос:

У меня есть 3 просмотра изображений. 1-й и 2-й соединены красной линией. Также у меня есть простая кнопка. Вот картинка:

введите описание изображения здесь

Я хочу подключить 2-й и 3-й просмотры изображений с новой линией пути и изменить цвет первой строки (например, на зеленый) при нажатии на мою кнопку. Вот части моего кода:

 public class SkillPath extends View {
Paint paint;
Path path;

... constructors


@Override
protected void onDraw(Canvas canvas) {
    addPath (canvas);       
}

//Here is my RED line
void addPath (Canvas canvas){
    paint.setAntiAlias(true);
    paint.setColor(Color.RED);
    paint.setStrokeWidth(3);

    path.moveTo(110, 110);
    path.lineTo(210, 110);

    canvas.drawPath(path, paint);
    Log.d ("Page 2","onDraw");
}
  

Я могу получить все координаты всех видов, но как я могу перерисовать существующий холст? Я подозреваю, что мне нужно использовать invalidate(), но я недостаточно знаю, чтобы сделать это. Нужна помощь.

Ответ №1:

invalidate() Метод заставляет View перерисовывать.

Так что просто примените нужную вам модификацию к своему холсту и вызовите invalidate() соответствующую View после этих изменений.