将两个弧线关在一起

时间:2016-06-05 12:18:01

标签: android android-canvas

我正在设计一个自定义小部件,其尺寸与此蓝色相似: gauge (除了这是一个连续的测量仪,而不是一个分裂的测量仪)

我试图绘制一条带有两个弧的路径:

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()不能正常工作,因为它用规格起点(低点)关闭了路径。我想要的是在弧的两个端点(较高点)之间画一条线。

不幸的是,我不知道如何找到他们的坐标来绘制这条想要的线。

仅供参考,我现在正在绘制这个:enter image description here

任何想法/帮助? :)

1 个答案:

答案 0 :(得分:1)

麻烦的是faceRect和secondArcRect的中心没有在y轴上对齐。 简单地修复它并使它们在右下角共享相同的y位置(让两个弧在开始时交叉,然后正确填充)就足够了