Нарисуйте линию с указанной координатой и очистите холст

#android

#Android

Вопрос:

Мне нужно нарисовать линию на макете, для этого я прочитал здесь вопрос и использую класс DrawView, но в какой-то момент мне нужно очистить этот вид и нарисовать на нем другую линию (или просто изменить координаты первой строки, если это возможно).

Но я не знаю, как я мог бы сделать это легко, к сожалению, единственная идея, которая у меня есть, — это удалить DrawView из макета и каждый раз создавать другой DrawView.

Редактировать: я пытался использовать save(); для сохранения пустого холста и restore() каждый раз, когда мне нужно его очистить, но, похоже, это не работает…

 public class DrawView extends View {
    Paint paint = new Paint();
    float startX;
    float startY;
    float endX;
    float endY;

    public DrawView(Context context, float startX, float startY, float endX, float endY) {
        super(context);
        paint.setColor(Color.WHITE);
        this.setMinimumHeight(300);
        this.setMinimumWidth(300);

        this.startX = startX;
        this.startY = startY;
        this.endX = endX;
        this.endY = endY;
    }

    @Override
    public void onDraw(Canvas canvas) {
        canvas.drawLine(startX, startY, endX, endY, paint);
    }

}
  

Ответ №1:

Вы можете использовать

 canvas.drawColor(int color)
  

чтобы покрасить холст в любой цвет (это означает, что вы очищаете все, что было нарисовано раньше). Если вы используете

 canvas.drawColor(Color.TRANSPARENT);
  

это должно привести к очистке вашего холста.

Ответ №2:

знаете, если вы хотите программно рисовать непосредственно на экране, то вы можете отказаться от XML и сделать это через SurfaceView, вот инструкция: www.edu4java.com/