您的位置:首页 > 其它

请教关于canvas绘图的问题

2017-01-02 01:05 330 查看
想实现一个动态画圆环的功能,用于统计数据百分比,当不同的数据时要采用不同的颜色,在实现的过程中遇到了一个问题,未达到想要的效果。

代码如下:
 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);

    }


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



而我想要的效果是下面:



请问该如何实现?谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: