以下代码应在圆圈周围绘制文本0 - 23,如在钟面中。这是通过将hoffet参数设置为drawTextOnPath来完成的。但它只适用于圆圈的上半部分,为什么会这样,这是一个错误。事实上,它围绕圆圈打印0-12,但12个中的2个也丢失了。
Path circle = new Path();
circle.addCircle(0, 0, (float) radius, Direction.CW);
Shape shape2 = new PathShape(circle, 1, 1);
shape2.resize(1, 1); // have to call this sets scaling
shape2.draw(canvas, timeFramePaint);
for (int hour=0; hour < 24; ++hour) {
// Text
drawHour(canvas, hour, radius, textPaint, circle);
}
public void drawHour(Canvas canvas, int hour, double radius,
Paint paint, Path path) {
Logger.getAnonymousLogger().info(String.valueOf(hour));
float hOffset = (float) (hour * radius * Constants.Tau / 24);
final float vOffset = 0;
canvas.drawTextOnPath(String.valueOf(hour), path, hOffset, vOffset, paint);
}
答案 0 :(得分:0)
在进行一些测试并查看sdk源代码后,似乎是一个错误。我可能错了,但我看不出设计是如何有用的。
答案 1 :(得分:0)
让我们尝试检查大小父位图和圆的大小。在这里,我想可能是圆的大小和父位图的大小是相同的。所以文字丢失了。