Android Custom View: есть ли метод настройки, вызываемый перед onDraw, который имеет доступ к Width - PullRequest
0 голосов
/ 22 мая 2018

У меня есть некоторый код в перезаписанном методе OnDraw(Canvas canvas) в пользовательском классе представления, который вызывается многократно для рисования кругов с использованием caclulated радиуса.Радиус должен быть рассчитан только один раз, но ширина просмотра необходима для вычисления, поэтому это не может быть сделано в конструкторе.

circleRadius = Width / CIRCLES_TO_FIT_AT_ONCE / 2;
canvas.DrawCircle(Width / 2 + (i - startIndex) * circleRadius * 2, Height / 2, circleRadius, paint);

Где-нибудь я могу переместить вычисление circleRadius так, чтобы оно не былоизлишне пересчитывается при каждом розыгрыше?Возможно, другой способ переопределить?

1 Ответ

0 голосов
/ 22 мая 2018

Благодаря Майку М.

protected override void OnSizeChanged(int w, int h, int oldw, int oldh)
{
    // Calculate circle size
    circleRadius = w / CIRCLES_TO_FIT_AT_ONCE / 2;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...