将两条弧闭合在一起
Close two arcs together
我正在设计一个自定义小部件,它的仪表类似于这个蓝色的:
(除了这是一个连续的仪表而不是一个分开的仪表)
我试着画了两条弧线的路径:
private void drawGauge(Canvas canvas) {
canvas.save(Canvas.MATRIX_SAVE_FLAG);
float degreesToDraw = positionToDegree();
gaugePath.addArc(secondArcRect, 90, degreesToDraw);
gaugePath.addArc(faceRect, 90, degreesToDraw);
gaugePath.close();
canvas.drawPath(gaugePath, gaugePaint);
canvas.restore();
}
我的两条弧线画得很好,但 gaugePath.close()
不能正常工作,因为它用仪表起点(下点)关闭了路径。我想要的是在圆弧的两个端点(较高点)之间画一条线。
不幸的是,我不知道如何找到他们的坐标来绘制这条想要的线。
仅供参考,我目前正在绘制此图:
有 idea/help 吗? :)
问题是 faceRect 和 secondArcRect 的中心没有在 y 轴上对齐。
只需修复此问题并使它们的右下点共享相同的 y 位置(让两条弧在开始时交叉并正确填充)就足够了
我正在设计一个自定义小部件,它的仪表类似于这个蓝色的:
我试着画了两条弧线的路径:
private void drawGauge(Canvas canvas) {
canvas.save(Canvas.MATRIX_SAVE_FLAG);
float degreesToDraw = positionToDegree();
gaugePath.addArc(secondArcRect, 90, degreesToDraw);
gaugePath.addArc(faceRect, 90, degreesToDraw);
gaugePath.close();
canvas.drawPath(gaugePath, gaugePaint);
canvas.restore();
}
我的两条弧线画得很好,但 gaugePath.close()
不能正常工作,因为它用仪表起点(下点)关闭了路径。我想要的是在圆弧的两个端点(较高点)之间画一条线。
不幸的是,我不知道如何找到他们的坐标来绘制这条想要的线。
仅供参考,我目前正在绘制此图:
有 idea/help 吗? :)
问题是 faceRect 和 secondArcRect 的中心没有在 y 轴上对齐。 只需修复此问题并使它们的右下点共享相同的 y 位置(让两条弧在开始时交叉并正确填充)就足够了