我正在设计一个自定义小部件,其尺寸与此蓝色相似:
(除了这是一个连续的标尺,而不是一个分裂的标尺)
我试图绘制一个有两个弧的路径:
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()
不能用作例外,因为它用规格起点(低点)关闭了路径 . 我想要的是在弧的两个 endpoints (较高点)之间画一条线 .
不幸的是,我不知道如何找到他们的坐标来绘制这条想要的线 .
仅供参考,我现在正在画这个:
任何想法/帮助? :)
1 回答
麻烦的是faceRect和secondArcRect的中心没有在y轴上对齐 . 简单地固定它并使它们在它们的右下角共享相同的y位置(让两个弧在开始时交叉,然后正确填充)就足够了