2012-08-07 137 views
0

onAnimationRepeat()方法不起作用。我已通过记录器测试该方法未被android访问。 我在做什么错?onAnimationRepeat()方法不起作用

代码

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> 

回答

-1

尝试调用doFadeEffectAnimation()从onWindowFocusChanged()方法,而不是从onCreate()方法调用它。 ..

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

希望它可以帮助您解决问题...

+0

你的答案超出范围,提出的问题。 – 2012-08-07 11:30:03

+0

一旦我有类似的情况,在我的情况下,动画甚至没有开始,因为我在onCreate()方法中编写代码。将我的动画代码从onCreate()更改为onWindowFocusChanged()后,所有内容都可以正常工作。我认为,你所报告的问题可能是由于我面对同样的原因。 – Midhu 2012-08-07 11:40:43