2012-05-29 61 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實例,是它的工作原理,但我無法理解爲什麼我原來的解決方案不起作用!