2015-11-23 23 views
8

我想要做一个翻译使用此动画以下安卓:如何使用ValueAnimator

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方法。

任何人都可以帮忙吗?

+0

只需应用动画。你可以从'动画'对象中获取值。或者,您可以使用ObjectAnimator,此类将自动将动画值应用于给定对象的属性。 – Jago

+0

@Ahmada Beye //专业提示;调用'va.setInterpolator(new AccelerateDecelerateInterpolator());'为更平滑的动画。 – Epicality

回答

25

如果你真的,真的真的想用ValueAnimator制作动画的View你能做到这样(完成你的榜样的翻译,假设你的意思是translationX; 裸记住,你” re动画翻译从0px到3px,所以你可能看不到太大的差别):

public static void move(final 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) { 
      view.setTranslationX((float)animation.getAnimatedValue()); 
     } 
    }); 
    va.setRepeatCount(5); 
    va.start(); 
} 
+11

非常感谢你,这就是我真的,​​真的,**真的**需要 –