相关疑难解决方法(0)

Android - 如何绘制基于弧的渐变

我正在尝试创建一个逐渐从一种颜色到另一种颜色的弧(可变度数).例如从蓝色到红色:

在此输入图像描述

这是我的代码:

SweepGradient shader = new SweepGradient(center.x, center.y, resources.getColor(R.color.startColor),resources.getColor(R.color.endColor));
Paint paint = new Paint()
paint.setStrokeWidth(1);
paint.setStrokeCap(Paint.Cap.FILL);
paint.setStyle(Paint.Style.FILL);
paint.setShader(shader);
canvas.drawArc(rectF, startAngle, sweepAngle, true, paint);
Run Code Online (Sandbox Code Playgroud)

但结果是整个弧线都涂上了相同的颜色.

编辑:
经过更多的实验,我发现颜色的扩散是由弧的角度决定的.如果我绘制一个小角度的圆弧,则只显示第一种颜色.角度越大,绘制的颜色越多.如果角度很小,似乎没有渐变.
这是一个例子.我画了4个弧--90,180,270和360:

RectF rect1 = new RectF(50, 50, 150, 150);
Paint paint1 = new Paint();
paint1.setStrokeWidth(1);
paint1.setStrokeCap(Paint.Cap.SQUARE);
paint1.setStyle(Paint.Style.FILL);

SweepGradient gradient1 = new SweepGradient(100, 100,
        Color.RED, Color.BLUE);
paint1.setShader(gradient1);

canvas.drawArc(rect1, 0, 90, true, paint1);

RectF rect2 = new RectF(200, 50, 300, 150);
Paint paint2 = new Paint();
paint2.setStrokeWidth(1);
paint2.setStrokeCap(Paint.Cap.SQUARE);
paint2.setStyle(Paint.Style.FILL);

SweepGradient gradient2 = new SweepGradient(250, 100,
        Color.RED, …
Run Code Online (Sandbox Code Playgroud)

graphics android 2d geometric-arc

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

2d ×1

android ×1

geometric-arc ×1

graphics ×1