2011-06-03 18 views
6

मेरा प्रश्न, क्या एनीमेशन-सूची में किसी आइटम को एनिमेट करना संभव है। विशेष रूप से, कहते हैं कि तुम है:एंड्रॉइड एनिमेटिंग एनीमेशन-सूची

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> 
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> 
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> 
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> 
</animation-list> 

मैं हर <item> के अल्फा फीका बजाय बस अगले करने के लिए एक छवि से कूद करना चाहते हैं, यह संभव है?

उत्तर

3

आपको ऐसा करने के लिए tweened एनिमेशन का उपयोग करने की आवश्यकता होगी। अनिवार्य रूप से आपको जो करना है वह दो छवि दृश्य वस्तुएं हैं, एक वर्तमान छवि के लिए, और एक नई छवि के लिए। के लिए रेस/anim/fadeout.xml दो tweened एनिमेशन बनाएं:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="1.0" 
    android:toAlpha="0.0" 
    android:startOffset="500" 
    android:duration="500" /> 

और रेस/anim/fadein.xml:

:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:startOffset="500" 
    android:duration="500" /> 

तब दृश्यों के बीच स्विच करने के लिए एक ImageSwitcher विजेट का उपयोग

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    setContentView(ll); 
    final ImageSwitcher is = new ImageSwitcher(this); 
    is.setOutAnimation(this, R.anim.fadeout); 
    is.setInAnimation(this, R.anim.fadein); 
    ImageView iv1 = new ImageView(this); 
    iv1.setImageResource(R.drawable.icon); 
    is.addView(iv1); 
    is.showNext(); 
    ll.addView(is); 

    Button b = new Button(this); 
    ll.addView(b); 

    b.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
      ImageView iv2 = new ImageView(MainActivity.this); 
      iv2.setImageResource(R.drawable.icon2); 
      is.addView(iv2); 
      is.showNext(); 
     } 
    }); 
} 

ट्विन किए गए एनिमेशन के बारे में my blog पर लेखों की एक श्रृंखला है।

+0

यह सुनिश्चित नहीं है कि यह वही है जो मैं ढूंढ रहा हूं। ऐप डाउनलोड डेटा के दौरान मैं स्प्लैश स्क्रीन को एनिमेट करने की कोशिश कर रहा हूं, इसलिए मेरे पास बस एक स्थिर छवि नहीं है। एनीमेशन में कम से कम 4 छवियां होंगी, और एनीमेशन स्वयं ही होना चाहिए - कोई उपयोगकर्ता इंटरैक्शन – tomislav2012

+0

मैंने कोड को सरल रखने के लिए एक बटन का उपयोग किया था। समय-समय पर छवि को बदलने के लिए आप पृष्ठभूमि थ्रेड के साथ एक छवि स्विचर का उपयोग कर सकते हैं। –

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