我有一个扩展View
的类并覆盖onDraw(Canvas canvas)
方法。此视图运行动画,因此onDraw
将每秒调用多次。请考虑以下示例...
@Override
protected void onDraw(Canvas canvas) {
final int width = getWidth();
final int height = getHeight();
final int padLeft = getPaddingLeft();
final int padTop = getPaddingTop();
final int padRight = getPaddingRight();
final int padBottom = getPaddingBottom();
final RectF oval = new RectF(padLeft, padTop, width - padRight, height - padBottom);
...
}
每次调用onDraw
时,我是否应该担心会发生这么多函数调用? final
是否告诉编译器每次都不需要调用这些函数?这些变量会更好地作为member variables
,以便只调用一次函数吗?
P.S。我知道在运行我的程序时性能不会受到影响。我从学习的角度问这个问题。当我确切知道自己在做什么时,这让我感觉更好。
答案 0 :(得分:0)
在这里说到最后你只是说这个局部变量在这个函数中不会改变,每次调用onDraw时都会调用函数。 如果可能的话,最好将所有这些变量组合到另一个类,如DisplayProperties,并仅将其初始化一次。