마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 부채꼴 그리기(원은 그려지는데 부채꼴이 안그려져요. 원안에 부채꼴을 그리려고 합니다. 대체 무엇이 문제인제 모르겠어요)

0 추천
startAngle[0] = 0;
        for (int i = 0; i <6; i++) {
            setTimeSum(data[i]*3600*1000);
            startAngle[i] = startAngle[i]+ sweepAngle[i];
            sweepAngle[i] = 360 * TimeSum / data[i] * 3600 * 1000);

sweepAngle = 360 * (현재누적시간 + mPos) / mMax;
            startAngle[i + 1] = startAngle[i] + sweepAngle[i];//시작 각도

        }
        sweepAngle[6] = 360 * TimeSum / (data[6] * 3600 * 1000);

        for(int i=0; i<data.length; i++) {
            paint.setColor(color[i]);
            canvas.drawArc(new RectF(135,150,635,650),startAngle[i], sweepAngle[i],false,paint);
            Log.d("Test","startAngle"+startAngle[i]+"sweepAngle"+sweepAngle[i]);
            startAngle[i] = startAngle[i] + sweepAngle[i];
        }

     

    }
    public float getSweeAngle(int num){
        return sweepAngle[num];
    }
}
dddffaaas123 (230 포인트) 님이 2017년 1월 18일 질문
dddffaaas123님이 2017년 1월 21일 reshown

1개의 답변

0 추천
private void drawArc(Paint paint, Canvas canvas) {
    paint.setColor(arcLoadingColor);
    paint.setStrokeWidth(arcLoadingStrokeWidth);
    paint.setStrokeCap(Paint.Cap.ROUND);

    float deltaX = centerPointX - radius;
    float arcSizeX = (centerPointX - (deltaX / 2f)) * 2f;

    float deltaY = centerPointY - radius;
    float arcSizeY = (centerPointY - (deltaY / 2f)) * 2f;

    RectF box = new RectF(deltaX, deltaY, arcSizeX, arcSizeY);
    float sweep = 360 * value * ((float) 1 / maxValue);
    canvas.drawArc(box, arcLoadingStartAngle, sweep, false, paint);
  }
r기린ㄴㄴㄴ (460 포인트) 님이 2017년 1월 19일 답변
...