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

बस एनीमेशन लागू करें। आप 'एनीमेशन' ऑब्जेक्ट से मान प्राप्त कर सकते हैं। वैकल्पिक रूप से आप 'ऑब्जेक्टएनिमीटर' का उपयोग कर सकते हैं यह कक्षा स्वचालित रूप से एनिमेटेड मानों को दिए गए ऑब्जेक्ट की प्रॉपर्टी पर लागू करेगी। – Jago

+0

@ अमादा बेये // प्रो टिप; कॉल 'va.setInterpolator (नया त्वरण डीसेलरेटइंटरपोलेटर());' एक चिकनी एनीमेशन के लिए भी। – Epicality

उत्तर

25

तुम सच में, वास्तव में, वास्तव मेंView आप इसे इस तरह से (अपने उदाहरण परिष्करण कर सकते हैं का अनुवाद एनिमेट, यह मानते हुए आप translationX मतलब के लिए ValueAnimator उपयोग करना चाहते हैं, मन में नंगे कि आप ' 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

आपको बहुत धन्यवाद, वास्तव में, वास्तव में, ** वास्तव में ** ज़रूरत है –