我有以下自定义视图:

这是我通过使用Canvas的drawArc()方法实现的.但是,使用这种drawArc()方法我不能限制弧的内半径.
我想拥有的是这样的:

只剩下一个外环的地方.
我需要的是一个drawArc()函数,我可以设置弧的内半径.任何人都知道如何做到这一点?
(顺便说一句,覆盖内部区域不起作用,因为它需要是透明的.Color.TRANSPARENT在绘制红色和蓝色锥体之后绘制内部圆圈不会移除旧颜色.它只是将另一层放在顶部,这是透明的我仍然可以看到红色和蓝色)
我创建了一个圆环图,如下所示:

我的结果甜甜圈图应如下所示:

我的问题是,我怎样才能用图像实现线条(它们在第二个屏幕截图中四舍五入)
作为参考,这是我编写的代码:
public class PieChartView extends View {
private int[] values = {30, 60, 90, 100, 150};
private int c[] = {Color.MAGENTA,Color.BLUE,Color.RED,Color.CYAN,Color.YELLOW};
private int valuesLength = values.length;
private RectF rectF;
private Paint slicePaint, textPaint;
private Path path;
public PieChartView(Context context, AttributeSet attrs) {
super(context, attrs);
valuesLength = values.length;
slicePaint = new Paint();
slicePaint.setAntiAlias(true);
slicePaint.setDither(true);
slicePaint.setStyle(Paint.Style.FILL);
path = new Path();
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) {
if(values != null) {
int startTop = 0;
int startLeft = …Run Code Online (Sandbox Code Playgroud)