请教关于canvas绘图的问题

来源:互联网 发布:enjoy it 编辑:程序博客网 时间:2024/06/05 03:47
想实现一个动态画圆环的功能,用于统计数据百分比,当不同的数据时要采用不同的颜色,在实现的过程中遇到了一个问题,未达到想要的效果。

代码如下:

 class CustomView extends View {
        Paint paint;
        Paint paint1;

       int startAngle  = -90;
        int sweepAngle = 0;
        int sweepAngle1 = 0;

        public CustomView(Context context) {
            super(context);

            rectF = new RectF(60, 120, 260, 320);
            paint = new Paint();
            paint.setColor(Color.RED);
            paint.setAntiAlias(true);
            paint.setStrokeWidth(60);
            paint.setStyle(Paint.Style.STROKE);

            paint1 = new Paint(paint);
            paint1.setColor(Color.GREEN);
        }

        @Override
        protected void onDraw(Canvas canvas) {
            if (sweepAngle < 90) {
                startDrawArc(canvas, startAngle, sweepAngle, paint);
                sweepAngle += 2;
            } else {
                startDrawArc(canvas, -90 + 90, sweepAngle1, paint1);
                sweepAngle1 += 2;
            }


            if (sweepAngle1 > 270) {
                return;
            }

            invalidate();
        }
    void startDrawArc(Canvas canvas, float startAngle, float sweepAngle, Paint paint) {
        canvas.drawArc(rectF, startAngle, sweepAngle, false, paint);
    }



效果如图, 本来红色的变成白色的了。



而我想要的效果是下面:


请问该如何实现?谢谢!

0 0