Как отправить Canvas объекту из функции onDraw?

Я пытаюсь оживить мой объект. Для рисования объекта мне нужно использовать холст. Я могу отправить холст конструктору объекта только из функции onDraw. Но при этом новый объект создается на каждом шаге анимации.

public class DrawView extends View {
    public static Paint paint;
    public DrawView(Context context) {
        super(context);
        paint = new Paint();
        paint.setColor(Color.BLACK);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Line s = new Line(10, 10, canvas);
        super.onDraw(canvas);
        s.move();
        invalidate();
    }
}

class Line{

    private float x, y;
    private Canvas canvas;

    public Line(float x, float y, Canvas canvas) {
        this.x = x;
        this.y = y;
        this.canvas = canvas;
    }

    public void move(){
        draw();    
        x++;
        y++;
    }

    public void draw(){
        canvas.drawLine(x, y, x + 5, y + 5, DrawView.paint);
    }

}

1 ответ

Вы имеете в виду это???

public void move(Canvas canvas){
    draw(Canvas canvas);    
    x++;
    y++;
}

public void draw(Canvas canvas){
    canvas.drawLine(x, y, x + 5, y + 5, DrawView.paint);
}
Другие вопросы по тегам