2013-01-04 16 views
20

इस कोड का उपयोग करके मैं केवल एक फीका हूं, मैं इसके बारे में भी एक फीड आउट जोड़ने की तलाश में हूं। मैं "fadeout" नामक एक और एक्सएमएल जोड़ता हूं लेकिन मैं इसे अपने कोड में एकीकृत नहीं कर सकता।एनीमेशन फीका और बाहर

ImageView imageView= (ImageView)findViewById(R.id.imageView); 
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein); 
imageView.startAnimation(fadeInAnimation); 

button1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
imageView.startAnimation(fadeInAnimation); 

एक्सएमएल

<?xml version="1.0" encoding="UTF-8"?> 
    <set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:duration="Your Duration(in milisecond)" 
    android:repeatCount="infinite"/> 
</set> 

उत्तर

19

यह अच्छा उदाहरण है के लिए Fade In and Fade Out Animation with Alpha Effect

Animate Fade In Fade Out

UPDATED:

यह answer जांचें यह आपकी मदद कर सकता है

+0

यह सही नहीं है।: बिना फीका प्रभाव के फीड आउट छवि शो के बाद, फीका अंदर के लिए। –

31

यहां मेरा समाधान है। यह एनिमेटरसेट का उपयोग करता है। एनीमेशनसेट लाइब्रेरी काम करने के लिए बहुत छोटी थी। यह फीका अंदर और बाहर के बीच निर्बाध और अनंत संक्रमण प्रदान करता है।

public static void setAlphaAnimation(View v) { 
    ObjectAnimator fadeOut = ObjectAnimator.ofFloat(v, "alpha", 1f, .3f); 
    fadeOut.setDuration(2000); 
    ObjectAnimator fadeIn = ObjectAnimator.ofFloat(v, "alpha", .3f, 1f); 
    fadeIn.setDuration(2000); 

    final AnimatorSet mAnimationSet = new AnimatorSet(); 

    mAnimationSet.play(fadeIn).after(fadeOut); 

    mAnimationSet.addListener(new AnimatorListenerAdapter() { 
     @Override 
     public void onAnimationEnd(Animator animation) { 
      super.onAnimationEnd(animation); 
      mAnimationSet.start(); 
     } 
    }); 
    mAnimationSet.start(); 
} 
2

प्रलेखन AnimationSet

के अनुसार है कि एक साथ खेला जाना चाहिए एनिमेशन के एक समूह का प्रतिनिधित्व करता है। प्रत्येक व्यक्तिगत एनीमेशन का परिवर्तन में एक एकल रूपांतरित किया गया है। AnimationSet (उदाहरण के लिए, अवधि या fillBefore के लिए) किसी भी गुण है कि अपने बच्चों को भी सेट सेट करते हैं, तो के मूल्यों को भी पार AnimationSet बच्चे को महत्व देता

AnimationSet mAnimationSet = new AnimationSet(false); //false means don't share interpolators 

दर्रा सच इस सेट में एनिमेशन के सभी करता है, तो इस एनीमेशनसेट से जुड़े इंटरपोलेटर का उपयोग करना चाहिए। झूठी पास करें यदि प्रत्येक एनीमेशन को अपने स्वयं के इंटरपोलेटर का उपयोग करना चाहिए।

ImageView imageView= (ImageView)findViewById(R.id.imageView); 
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_in); 
Animation fadeOutAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_out); 
mAnimationSet.addAnimation(fadeInAnimation); 
mAnimationSet.addAnimation(fadeOutAnimation); 
imageView.startAnimation(mAnimationSet); 

मुझे आशा है कि यह आप में मदद मिलेगी।

0

मैं कोटलिन में काम कर रहा हूं (सभी को सलाह दें), इसलिए वाक्यविन्यास थोड़ा सा हो सकता है। मुझे क्या बस कॉल करने के लिए के लिए है:।

  • v.animate() अल्फा (0f) .duration = 200

मुझे लगता है कि, जावा में, यह निम्न होगा .: ।

  • v.animate() अल्फा (0f) .setDuration (200)

प्रयास करें:

  • निजी शून्य छुपाएं (देखें वी, int अवधि) { v.animate()। अल्फा (0 एफ)।setDuration (अवधि) }

  • निजी शून्य शो (देखें वी, पूर्णांक अवधि) { v.animate() अल्फा (1f) .setDuration (अवधि) }

संबंधित मुद्दे