Android:如何使用ValueAnimator

Android:如何使用ValueAnimator,android,android-animation,Android,Android Animation,我想用下面的方法做一个翻译动画 public static void move(TextView view){ ValueAnimator va = ValueAnimator.ofFloat(0f, 3f); int mDuration = 3000; //in millis va.setDuration(mDuration); va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

我想用下面的方法做一个翻译动画

public static void move(TextView view){

    ValueAnimator va = ValueAnimator.ofFloat(0f, 3f);
    int mDuration = 3000; //in millis
    va.setDuration(mDuration);
    va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        public void onAnimationUpdate(ValueAnimator animation) {

        }
    });
    va.setRepeatCount(5);
    va.start();
}
但我不知道如何使用onAnimationUpdate方法

有人能帮忙吗?

如果你真的想用
ValueAnimator
视图的翻译制作动画,你可以这样做(完成您的示例,假设您的意思是
translationX
请记住,您正在为从0px到3px的翻译设置动画,因此您可能不会看到太大的差异):


ValueAnimator是制作动画的好工具。通常我们有两个步骤:

步骤1-通过创建ValueAnimator类

ValueAnimator animator = ValueAnimator.ofFloat(start value, end value);
步骤2-添加一个更新侦听器并至少重写onAnimationUpdate()函数


只需应用动画即可。您可以从
animation
对象获取值。或者,您可以使用
ObjectAnimator
此类将自动将动画值应用于给定对象的属性。@Ahmada Beye//Pro tip;调用“va.setInterpolator”(新的AcceleratedAccelerateInterpolator())为了更流畅的动画。非常感谢,这正是我真正、真正、真正需要的。请说明为什么要强调“真的”。这是一种麻烦的方法还是一种糟糕的做法?新手问题顺便提一下。@FelixVavour,因为这不是在视图上执行翻译动画的最佳方式(我个人更喜欢view.animate())。请看动画框架团队的介绍。
ValueAnimator animator = ValueAnimator.ofFloat(start value, end value);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            float value = (float) animator.getAnimatedValue();

            //this value should be used to update properties of views.
            //just don't forget to run invalidate function of your views 
              // to redraw them. 
        }
    });