2016-04-02 14 views
0

オブジェクトをアニメーション化しようとしています。オブジェクトを描画するにはキャンバスを使用する必要があります。私は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); 
    } 

} 

答えて

0

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); 
} 
関連する問題