2012-07-08 4 views
6

I utilizzando AnimationDrawable come questo: il lavoroAnimationDrawable non funzionano in Android 2.2

ImageView rocketImage = (ImageView) layout.findViewById(R.id.animation); 
rocketImage.setBackgroundResource(R.drawable.progress_blue_animation); 
rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 
rocketAnimation.start(); 

Questo codice in Android 3.0/4.0/4.1/4.0, ma non funzionano in Android 2.2. Come risolvere questo problema?

risposta

17

Per quanto ne so, questo è un Bug in 2.1, 2.2

Una possibile soluzione potrebbe essere:

ImageView rocketImage = (ImageView) layout.findViewById(R.id.animation); 
rocketImage.setBackgroundResource(R.drawable.progress_blue_animation); 
rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 
rocketImage.post(new Runnable(){ 
    public void run(){ 
     rocketAnimation.start(); 
    } 
}); 

(ma l'ho fatto non provare a Targets> 2.1)

+1

testato con Android 4.0, funziona bene e grazie. –

+2

Grazie, funziona come fascino. –

+3

Voglio mostrare un'animazione di caricamento con l'utilizzo di una finestra popup. In realtà funziona su 4.0, ma non eseguire su 2.3.3. Ho provato un sacco di cose come l'utilizzo di un altro thread, metodo di post, ecc. Non ha risolto il problema. In 2.3.3 mostra solo la prima immagine. Come potrebbe risolvere questo? –

0
view.post(new Runnable() { 
     public void run() { 
      anim.start(); 
     } 
    }); 
    view.startAnimation(anim); 

questo funziona per me.