2012-05-29 41 views
1

我试图让在Android plataform动画倒计时,在TextView的这个节目去3号从0成长到1.5上规模的财产,所以2号,1去!”。动画的TextView更改文本,并再次动画(动画倒计时)

我使用一个TextView,动画和AnimationListener,但我希望动画不能正常工作,它只是在第一动画显示3号,所以它显示的字“去!”没有动画。

我在做什么错?

谢谢!

这里查看counter.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" android:layout_height="fill_parent" 

android:layout_width="fill_parent" android:gravity="center_vertical|center_horizontal"> 

    <TextView 
     android:id="@+id/txtCount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="3" android:textColor="#ffffff" android:textSize="150dp"/> 

</LinearLayout> 

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:interpolator="@android:anim/linear_interpolator" 
     android:fromXScale="0" 
     android:toXScale="1.5" 
     android:fromYScale="0" 
     android:toYScale="1.5" 
     android:fillAfter="false" 
     android:duration="1000" /> 
</set> 

我的代码:

public class AdivinhacaoActivity extends Activity { 

... 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ... 

    //async task 
    new loaderImages(this).execute(); 
} 

private class loaderImages extends AsyncTask<Void, String, Bitmap[]> { 

    Activity activity; 
    public loaderImages(Activity act){ 
     activity = act; 
    } 

    protected Bitmap[] doInBackground(Void... arg0) {  

     ... 

     return list; 
    } 

... 
    int countCounter; 
    protected void onPostExecute(Bitmap[] imagens){ 
     bmps = imagens; 
     carregaContagem(); 
     final Animation anima = AnimationUtils.loadAnimation(activity, R.anim.counter);   

     countCounter = 3; 

     anima.setAnimationListener(new AnimationListener() {     

        public void onAnimationStart(Animation anim){};     
        public void onAnimationRepeat(Animation anim){}; 

        public void onAnimationEnd(Animation anim) 
        {     
       //here I tried txtCount.clearAnimation() but it doesn't work 
         countCounter--;     
         if(countCounter >= 0){ 
        //change the text 
          if(countCounter > 0){ 
           txtCount.setText("" + countCounter); 
          } 
          else{ 
           txtCount.setText("GO!");        
          } 
        //start animation again with text changed 
          txtCount.startAnimation(anim); 
         } 
         else{ 
          ... 
         } 
        }; 
       }); 

     //start animation first time 
     txtCount.startAnimation(anima);   

     } 

    } 

} 

回答

0

我设法解决我的问题,使用一个TextView的,并为每一个计数Animation实例,是它的工作原理,但我无法理解为什么我原来的解决方案不起作用!