for 루프를 사용하여 여러 파이 차트를 그려야하며 데이터는 배열 (data[][][]
)에 저장됩니다. 각 차트 그리기가 완료되면 차트가 겹치지 않도록 상단 및 하단에 450 (top+=450; bottom+=450;
)을 더합니다. 그러나 결과는 원형 차트가 지속적으로 맨 아래로 이동한다는 것입니다. 줄 끝 부분에 invalidate()
을 추가하려고 시도하지만 작동하지 않습니다.Android : 왜 무한 루프가 onDraw()입니까?
private String data[][][]=... //store some data
private float left=50,top=100,right=450, bottom=500;
public void onDraw(Canvas c) {
super.onDraw(c);
Paint paint = new Paint();
RectF rec;
for(int j=0;j<data.length;j++){
rec=new RectF(left,top,right,bottom);
//draw a pie chart
for (int i = 0; i < data[j].length; i++) {
float drawDegree = (float)Integer.parseInt(data[j][i][1])/100* 360f;
c.drawArc(rec, -90, drawDegree, true, paint);
}
top+=450;
bottom+=450;
}
}
은 루프에서 당신의 온 드로우입니까? – kabuto178