0
Ich versuche mein Objekt zu animieren. Zum Zeichnen eines Objekts muss ich eine Leinwand verwenden. Ich kann Canvas nur über die OnDraw-Funktion an den Objektkonstruktor senden. Aber dabei entsteht ein neues Objekt bei jedem Schritt der Animation.Wie kann Canvas von der OnDraw-Funktion an ein Objekt gesendet werden?
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);
}
}