Android drawArc没有正确绘图

时间:2014-06-04 08:30:11

标签: android android-canvas draw

我正在处理某种圆形视图,其中每次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项目

Circular View Arc error

1 个答案:

答案 0 :(得分:0)

嗯,对不起,看起来像Genymotion没有正确显示。真实设备和Android模拟器无错误地显示视图。