我正在处理某种圆形视图,其中每次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保存得分,我可以根据该得分来计算如何显示圆圈(由一些弧组成)。日志输出始终正常,但Arcs大部分时间但不总是正确的。例如,请参见下图中的绿色部分。
你们有人可以给我一些灵感,如何显示它总是正确的吗?整个项目在GitHub上作为Android Studio项目
答案 0 :(得分:0)
嗯,对不起,看起来像Genymotion没有正确显示。真实设备和Android模拟器无错误地显示视图。