Android:使用具有不同圆弧大小且中心相同的drawArc()

Android:使用具有不同圆弧大小且中心相同的drawArc(),android,Android,我试图以一种与传统方法稍有不同的方式绘制饼图。不管怎样,馅饼都有相等的部分,但每个部分的半径都不同。因此,所有圆弧仍以一个点为中心,但半径不同 下面是它的简化代码 rect1 = new RectF(0,0,8,8) rect2 = new RectF(0,0,6,6) rect3 = new RectF(0,0,4,4) rect4 = new RectF(0,0,2,2) canvas.drawArc(rect1,0,90,true, paint) canvas.drawArc(rect2

我试图以一种与传统方法稍有不同的方式绘制饼图。不管怎样,馅饼都有相等的部分,但每个部分的半径都不同。因此,所有圆弧仍以一个点为中心,但半径不同

下面是它的简化代码

rect1 = new RectF(0,0,8,8)
rect2 = new RectF(0,0,6,6)
rect3 = new RectF(0,0,4,4)
rect4 = new RectF(0,0,2,2)

canvas.drawArc(rect1,0,90,true, paint)
canvas.drawArc(rect2,90,90,true, paint)
canvas.drawArc(rect3,180,90,true, paint)
canvas.drawArc(rect4,270,90,true, paint)
这将创建所有正确的圆弧,但所有圆弧的点不在同一位置居中。我理解这是因为RectF类是如何工作的

所以我的问题是,我能把这些不同的弧线排列在画布的中心吗?是否有一个圆弧偏移的地方,我可以用来做这件事

我试过油漆,但没有成功。任何建议都会有帮助

它实际上不是基于“RectF类如何工作”,而是基于如何放置这些矩形。不要在
(0,0)
处对齐所有这些矩形的左上角,而是对齐中心。一点基础数学会让你明白这一点。假设一个圆心
(centerX,centerY)
和一个半径
radius
,左侧为
centerX-radius
,顶部为
centerY-radius
,右侧为
centerX+radius
,底部为
centerY+radius
。对每个具有相同中心点和不同半径的矩形执行此操作,不出所料,最终将得到具有相同中心的圆弧