2014-11-11 5 views
0

캔버스의 한 좌표에서 다른 좌표로 이동하는 선을 그리면됩니다. X 나는 \보기의 캔버스에 선을 그리기

public class CustomMYChart extends View { 

float x=0,y=0; 
Canvas canvas; 
Paint paint; 

public CustomMYChart(Context context) { 
    super(context); 
    // TODO Auto-generated constructor stub 
    paint = new Paint(); 
    paint.setColor(Color.GREEN);   

} 

@Override 
protected void onDraw(final Canvas canvas) { 
    // TODO Auto-generated method stub 
    super.onDraw(canvas); 
    this.canvas=canvas; 

    for(int i=0; i<1000; i++){ 

     canvas.drawCircle(x, y, 5, paint); 
     x+=1; 
     y+=1; 
     invalidate(); 
    } 

} 

}

+0

1000 개의 루프로 무엇을 하시겠습니까? – bladefury

+0

이것은 샘플 코드이지만 1000 루프를 제공하면 더 매끄러운 선을 그릴 수 있다고 생각했습니다 –

+0

이 코드에 어떤 문제가 있습니까? – bladefury

답변

0

그냥 1000 번 (무효 전화 반복에 대해 단 하나,의 onDraw에서 for 문을 제거합니다. 시간 내 그리기 코드를 동기화에 문제가 오전) 그리고 당신은 얻을 y를 화면에서 뺍니다.

@Override 
protected void onDraw(final Canvas canvas) { 
    // TODO Auto-generated method stub 
    super.onDraw(canvas); 
    this.canvas=canvas; 



     canvas.drawCircle(x, y, 5, paint); 
     x+=1; 
     y+=1; 
     invalidate(); 
    }