2011-09-18 7 views
5

A tutti,Android Animazione Telaio con AnimationDrawable si ferma quando si usa all'interno TranslateAnimation

ho animato immagine con animazioni cornice che mi sto muovendo da dietro una vista e sullo schermo. Al termine di TranslateAnimation, voglio mantenere la posizione finale in modo che setFillAfter sia impostato su true.

Il mio problema è che l'animazione del fotogramma viene interrotta al termine di TranslateAnimation. Come posso riavviare o mantenere attiva l'animazione Frame?

<?xml version="1.0" encoding="utf-8"?> 
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    id="selected" android:oneshot="false"> 
     <item android:drawable="@drawable/a" android:duration="200" /> 
     <item android:drawable="@drawable/b" android:duration="200" /> 
     <item android:drawable="@drawable/c" android:duration="200" /> 
    </animation-list> 

    loadingView = (RelativeLayout) findViewById(R.id.loadingBar); 
    loadingView.setVisibility(View.VISIBLE); 
    loadingImage = (ImageView) loadingView.findViewById(R.id.loading); 
    loadingImage.setBackgroundResource(R.drawable.loading); 
    animateImages = (AnimationDrawable) loadingImage.getBackground(); 

    translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, 
               Animation.RELATIVE_TO_SELF,0.0f, Animation.RELATIVE_TO_SELF, -1.0f); 
    translateAnimation.setInterpolator(new AccelerateInterpolator()); 
    translateAnimation.setDuration(2000); 
    translateAnimation.setFillEnabled(true); 
    translateAnimation.setFillAfter(true);  

    translateAnimation.setAnimationListener(new AnimationListener() 
    { 
     @Override 
     public void onAnimationStart(Animation animation) 
     { 
      // TODO Auto-generated method stub 
        animateImages.start();        
     } 

     @Override 
     public void onAnimationEnd(Animation arg0) 
     { 

     } 

     @Override 
     public void onAnimationRepeat(Animation animation) 
     { 
      // TODO Auto-generated method stub 

     } 
    }); 

    loadingView.startAnimation(translateAnimation); 
+0

Puoi mostrare il tuo frame animazione xml? –

+0

Aggiornata la domanda con il frame animation xml. – Koppo

+0

L'unica altra cosa che ho notato toccando lo schermo vedo l'animazione che inizia finchè non tocco lo schermo. Si ferma quando tolgo la mia mano da esso. – Koppo

risposta

0

Ho avuto lo stesso problema e non sono riuscito a trovare una soluzione definitiva. Quindi una soluzione per me è stata aggiungere un'animazione lunga alla fine, quasi senza modifiche (un'animazione di traduzione si spostava di pochi pixel dopo molto tempo), quindi l'animazione fotogramma per fotogramma continua a essere riprodotta durante alcuni minuti. Per la mia app è abbastanza. Forse trovi utile questa idea.