2016-04-02 13 views
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); 
    } 

} 

Antwort

0

Sie meinen das ???

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