Android 自定义视图:是否有在 onDraw 之前调用的设置方法可以访问 Width

Android Custom View: Is there a setup method called before onDraw that has access to Width

我在自定义视图 class 中的覆盖 OnDraw(Canvas canvas) 方法中有一些代码,它被重复调用以使用计算的半径绘制圆。半径只需要计算一次,但是计算需要view width,所以不能在构造函数中完成。

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

有什么地方可以让我移动 circleRadius 计算,这样它就不会在每次绘制调用时都不必要地重新计算吗?也许另一种覆盖方法?

感谢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;
}