Android Canvas.drawCircle()应该是它的一半大小

时间:2012-01-18 19:33:24

标签: android canvas

我有一个自定义视图,其中包含以下绘图代码:

@Override
protected void onDraw(Canvas canvas)
{
    super.onDraw(canvas);

    canvas.drawColor(Color.BLACK);

    mPaint.setColor(Color.GREEN);
    canvas.drawRect(0, 0, 100, 100, mPaint);
    mPaint.setColor(Color.BLUE);
    canvas.drawCircle(100, 100, 100, mPaint);
}

这应绘制一个正方形,然后是一个两倍于正方形大小的圆,以其一个角为中心。相反,圆圈的大小与正方形相同。

换句话说。它应该看起来像左边的图像,但它实际上看起来像右边的图像。是什么给了什么?

Correct rendering on left; actual rendering on right

1 个答案:

答案 0 :(得分:2)

好的,经过测试,这似乎是GUI布局编辑器中的一个错误。我假设这会匹配设备上的结果,因为它们实际运行代码......而且这是一个非常奇怪的错误,它只会影响圆圈!

这也是一个更复杂的错误,而不仅仅是将值加倍。有时drawCircle()会绘制一个椭圆!

无论如何,它在设备上按预期工作。