2011-09-18 54 views
5

對所有人,Android Frame Animation with AnimationDrawable在內部使用時停止TranslateAnimation

我有框架動畫的動畫圖像,我從視圖後面移動到屏幕上。當TranslateAnimation完成時,我想保持結束位置,所以setFillAfter設置爲true。

我的問題是,當TranslateAnimation完成時,Frame Animation停止。我如何重新啓動或保持幀動畫正在進行?

<?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

你可以顯示你的幀動畫xml嗎? –

+0

更新了框架動畫xml的問題。 – Koppo

+0

我觸摸屏幕時唯一注意到的事情只要我觸摸屏幕,我就會看到動畫開始。當我將我的手從它移開時它會停下來。 – Koppo

回答

0

我有同樣的問題,並且找不到明確的解決方案。所以對我來說一個解決方法是在最後添加一個長的動畫,幾乎沒有變化(翻譯動畫在很長一段時間後只移動幾個像素),所以逐幀動畫在幾分鐘內就會繼續播放。對於我的應用程序,這足夠了。也許你覺得這個想法很有用。

相關問題