2015-11-23 66 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

非常感謝你,這就是我真的,​​真的,**真的**需要 –