Android Canvas.drawCircle () вдвое меньше, чем должно быть - PullRequest
1 голос
/ 18 января 2012

У меня есть пользовательский вид со следующим кодом чертежа:

@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 Ответ

2 голосов
/ 19 января 2012

Хорошо, после тестирования это похоже на ошибку в редакторе макета GUI. Я предполагал, что это будет соответствовать результатам на устройстве, так как они на самом деле запускают код ... и это очень странная ошибка, которая затрагивает только круги!

Также это более сложная ошибка, чем просто удвоение значений. Иногда drawCircle () рисует эллипс!

В любом случае на устройстве все работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...