Намалюйце лінію з канкрэтнымі каардынатамі і чыстым палатном

Мне трэба, каб намаляваць лінію на макеце, для гэтага я чытаў некаторыя пытанні тут, і я выкарыстоўваю клас DrawView, але мне трэба, каб ачысціць гэты пункт гледжання ў нейкі момант, і намалюйце яшчэ адну лінію на ёй (ці проста змяніць каардынаты першай лініі, калі гэта магчыма ).

Але я не ведаю, як я мог бы зрабіць гэта лёгка, на жаль, адзіная ідэя, у мяне ёсць гэта выдаліць DrawView з макета і стварэння іншы кожны раз DrawView.

Змяніць: Я спрабаваў выкарыстаць захаваць (); каб захаваць пусты палатно, і аднавіць() кожны раз, мне трэба, каб ачысціць яго, але гэта не падобна на працу ...

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

}
0

2 адказы

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

1
дададзена

Вы можаце выкарыстоўваць

canvas.drawColor(int color)

афарбоўваць палатно ў любым колеры (гэта значыць вы ачысціць ўсе, што было звернута перш). Калі вы карыстаецеся

canvas.drawColor(Color.TRANSPARENT);

гэта павінна прывесці да ачыстцы палатна.

0
дададзена
Я паспрабаваў, што ён не працуе
дададзена аўтар badoualy, крыніца
Не маглі б вы апублікаваць код, які вы выкарыстоўвалі?
дададзена аўтар nanoquack, крыніца