我用的是ValueAnimator
的浮点值。
ValueAnimator anim = ValueAnimator.ofFloat(-1, 1);
anim.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float f = (float) animation.getAnimatedValue();
}
});
这里是问题-内存分配跟踪程序检测到在每次调用
getAnimatedValue()
时都会创建一个新的Float
对象。我在ValueAnimator
重复模式下使用INFINITE
,不断地创建新对象是个问题。有什么方法可以防止一直创建新对象吗?注:我知道这种内存泄漏一点也不重要,只是对优化感兴趣。
最佳答案
有一种方法可以防止每次调用Float
方法时创建新的onAnimationUpdate()
对象。在我看来是:
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float t = 2f * animation.getAnimatedFraction() - 1f;
}