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;
}
我在自定义视图 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;
}