【发布时间】:2015-04-04 07:12:19
【问题描述】:
我计划在特定秒内通过动画在 textView 上实现整数从 0 增加到某个值。 例如,在 textview 上显示将数字从 0 增加到 600 持续 5 秒的动画。
我该如何实现?
【问题讨论】:
-
到目前为止你尝试了什么?
标签: android animation textview
我计划在特定秒内通过动画在 textView 上实现整数从 0 增加到某个值。 例如,在 textview 上显示将数字从 0 增加到 600 持续 5 秒的动画。
我该如何实现?
【问题讨论】:
标签: android animation textview
您可以为此使用ValueAnimator:
private void startCountAnimation() {
ValueAnimator animator = ValueAnimator.ofInt(0, 600);
animator.setDuration(5000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
textView.setText(animation.getAnimatedValue().toString());
}
});
animator.start();
}
【讨论】:
public void animateTextView(int initialValue, int finalValue, final TextView textview) {
ValueAnimator valueAnimator = ValueAnimator.ofInt(initialValue, finalValue);
valueAnimator.setDuration(1500);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
textview.setText(valueAnimator.getAnimatedValue().toString());
}
});
valueAnimator.start();
}
【讨论】:
使用 ValueAnimator
TextView textview = findViewById(R.id.textview1);
ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 600);
valueAnimator.setDuration(5000);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
textview.setText(valueAnimator.getAnimatedValue().toString());
}
});
valueAnimator.start();
【讨论】:
我在这里为 Kotlin 开发者提供答案:
fun startAnimation(textView: TextView) {
val animator = ValueAnimator.ofInt(0, 600)
animator.duration = 5000 // 5 seconds
animator.addUpdateListener { animation ->
textView.text = animation.animatedValue.toString()
}
animator.start()
}
【讨论】: