【发布时间】:2014-06-04 08:30:11
【问题描述】:
我正在研究某种圆形视图,在每个 onDraw() 调用上都会绘制 Arc。整个 onDraw 方法是这样的
@Override
public void onDraw(Canvas canvas) {
float beg = 0;
float end;
if (items != null && items.size() > 0 && getSum() != 0)
for (Map.Entry<Object, ItemDescriptor> item : items.entrySet()) {
end = (item.getValue().getScore() / getSum()) * 360;
Log.d("jano", "drawing from " + beg + " to " + (beg + end));
canvas.drawArc(mBounds, beg, end, false, item.getValue().getPaint());
beg += end;
}
else {
canvas.drawArc(mBounds, beg, 360, false, defalutPaint);
}
}
绘画绘画:
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(color);
paint.setStrokeWidth(outerWidth);
ItemDescriptor 保存分数,基于该分数我可以计算如何显示圆(由一些弧组成)。日志输出总是可以的,但弧线大部分时间都是正确的,但并不总是正确的。例如,请参见下图中的绿色部分。
你们中的任何人能给我一些启发如何始终正确地显示它吗?整个项目在 GitHub 作为 Android Studio 项目
【问题讨论】:
标签: android android-canvas draw