2012-08-07 3 views
0

La méthode onAnimationRepeat() ne fonctionne pas. J'ai testé via logger que la méthode n'est pas accessible par android. Qu'est-ce que je fais de mal? méthodeLa méthode onAnimationRepeat() ne fonctionne pas

Code

public class MainActivity extends Activity { 

     private TextView textView; 
     String animText; 
     private Animation fadeInAnimation; 
     ArrayList<String> numList; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     textView = (TextView)findViewById(R.id.animationText); 
     numList=new ArrayList<String>(); 
     Random random = new Random(); 
       int num = random.nextInt(20); 
       for(int i = 1; i <= num ; i++){ 
         animText = String.valueOf(i); 
         numList.add(animText); 
       }   
     doFadeEffectAnimation(); 
    } 

    public void doFadeEffectAnimation(){ 

      textView = (TextView)findViewById(R.id.animationText); 
      textView.setTextSize(50); 
       fadeInAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_in); 
       fadeInAnimation.setAnimationListener(new AnimationListener() { 
         @Override 
         public void onAnimationStart(Animation animation) { 
           // TODO Auto-generated method stub 

         } 
         @Override 
         public void onAnimationRepeat(Animation animation) { 
           // TODO Auto-generated method stub 
         for (int i = 0; i < numList.size(); i++) { 
           textView.setText(numList.get(i)); 
         } 
         } 
         @Override 
         public void onAnimationEnd(Animation animation) { 
           // TODO Auto-generated method stub 

         } 
       }); 
       textView.startAnimation(fadeInAnimation); 

     } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 


} 

XML

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
    <alpha 
     android:duration="2000" 
     android:fromAlpha="0.1" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:toAlpha="1.0" 
     android:repeatCount="2" 
     /> 

</set> 

Répondre

-1

Essayez d'appeler doFadeEffectAnimation() de la méthode onWindowFocusChanged(), plutôt que de l'appeler de onCreate(). ..

@Override 
public void onWindowFocusChanged(final boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     doFadeEffectAnimation(); 
    } 
} 

espère que cela peut aider à résoudre votre problème ...

+0

votre réponse est hors de portée à la question posée. –

+0

Une fois que j'ai eu une situation similaire, dans mon cas, l'animation n'était même pas lancée, car j'ai écrit le code dans la méthode onCreate(). Après avoir changé mon code d'animation de onCreate() en onWindowFocusChanged(), tout a fonctionné parfaitement. Je pense que le problème que vous avez signalé peut être dû aux mêmes raisons que j'ai rencontrées. – Midhu