【发布时间】:2019-08-23 15:40:35
【问题描述】:
我正在尝试在另一个arc 内绘制一个arc,距离Wear OS 10px。
我们知道arc 可以使用以下方法绘制:
canvas.drawArc(arcBounds, 0, 90, false, paint);
上面的语句会从下午 3 点到 6 点画一条弧线。
我想在上面的arc 中同时绘制另一个arc startAngle 和sweepAngle。
假设需要绘制的arc的总数是基于列表的大小,如何才能达到预期的输出?
这是我原来的 arcBounds init 方法的样子:
private void initArcBounds(int width, int height, int additionalMargin) {
float margin = res.getDimension(R.dimen.timearc_margin) + additionalMargin;
arcBounds.left = margin;
arcBounds.top = margin;
arcBounds.right = width - margin;
arcBounds.bottom = height - margin;
}
for (Event el : eventList) {
canvas.drawArc(arcBounds, start, sweepAngle, false, timeArcPaints);
arcBounds.inset(10,10);
}
【问题讨论】:
-
如果您所说的“内部”是指朝向中心,那么
arcBounds.inset(10, 10)将在所有边上将边界缩小 10 个像素。您可以轻松循环列表的大小,每次调用相同的inset()和drawArc()。 -
嗯基本上我想要类似于这个问题中的图像的东西:stackoverflow.com/questions/11549984/…,但是是弧形的。
-
这是 200px x 200px 的弧形扫描,每步插入 10px:i.stack.imgur.com/cgXHh.png。
-
对,所以我尝试了 inset 方法,但似乎 inset 被应用于最外层的弧线,也使其收缩,这不是我想要的。我将添加一个代码 sn-p。
-
哦,哇,确实有效。如果你能写一个,我会很乐意接受你的回答! :)
标签: java android android-canvas wear-os