Android Custom View: есть ли метод настройки, вызываемый перед onDraw, который имеет доступ к Width

У меня есть некоторый код в перезаписанном 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 ответ

Решение

Благодаря Mike M..

protected override void OnSizeChanged(int w, int h, int oldw, int oldh)
{
    // Calculate circle size
    circleRadius = w / CIRCLES_TO_FIT_AT_ONCE / 2;
}
Другие вопросы по тегам