gpt4 book ai didi

java - Android TextView 上计数效果的 ValueAnimator

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:38 28 4
gpt4 key购买 nike

我正在尝试在 TextView 中为这样的 double 值制作 cout-up 效果:

ValueAnimator animator = new  ValueAnimator();
animator.setObjectValues(0, 50.5); //double value
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
textView.setText(String.valueOf(animation.getAnimatedValue()));
}
});
animator.setEvaluator(new TypeEvaluator<Double>() { // problem here
@Override
public Double evaluate(float fraction, Double startValue, Double endValue) {
return (startValue + (endValue - startValue) * fraction);
}
});
animator.setDuration(3000);
animator.start();// problem here

它给了我这个:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double at the line animator.setEvaluator(new TypeEvaluator()animator.start();

如果我使用整数计数并实现 TypeEvaluator 方法,它就可以工作。为什么不加倍?

最佳答案

animator.setObjectValues(0, 50.5); 在这一行中 0 被视为 int

将此行更改为

animator.setObjectValues(0d, 50.5d);//双重值(value)

关于java - Android TextView 上计数效果的 ValueAnimator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39486395/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com