2016-04-02 32 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); 
} 
相關問題