2011-12-30 94 views
2

我面臨的問題是Android中的幀動畫。其實我有很多圖像作爲框架,因爲我爲不同的動畫製作了不同的動畫列表文件。在主屏幕上,我有一個背景圖像,我有不同的動畫按鈕。我也完成了動畫,但是當我點擊第二次按鈕時動畫不起作用。意味着它只能工作一次。我不明白爲什麼會發生這種情況。這是我的項目的一些代碼片段。Android中的幀動畫中的問題

動畫列表文件: -

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> 
<item android:drawable="@drawable/cat_angry0000" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0001" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0002" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0003" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0004" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0005" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0006" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0007" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0008" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0009" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0010" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0011" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0012" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0013" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0014" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0015" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0016" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0017" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0018" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0019" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0020" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0021" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0022" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0023" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0024" android:duration="50" /> 
<item android:drawable="@drawable/cat_angry0025" android:duration="50" /> 
</animation-list> 

代碼: -

ImageView rocketImage; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.catlayout); 

    rocketImage = (ImageView) findViewById(R.id.backgroundCat); 
    rocketImage.setImageBitmap(null); 
    rocketImage.setBackgroundResource(R.anim.angry_tail_animation); 
} 

public void headButtonClicked(View v) { 
    final AnimationDrawable mailAnimation = (AnimationDrawable) mMailTab.getBackground(); 
    mMailTab.post(new Runnable() { 
    public void run() { 
     if (mailAnimation != null) mailAnimation.start(); 
    } 
    }); 
} 

headButtonClicked是我要開始動畫放置一個按鈕。它只工作一次。如果任何人有任何想法如何解決這個問題,請幫助我。

感謝

回答

3

動畫中的XML文件中所添加的屬性android:oneshot="true",這意味着你想要的動畫只進行一次比賽。對於再次打它,你應該讓android:oneshot="false"

UPDATE:

如果要啓動動畫每次你點擊你要調用的animation.stop();上一個按鈕,如果運行啓動動畫。事情是這樣的,

if (frameAnimation.isRunning()) { 
     frameAnimation.stop(); 
     } 

     else { 
     frameAnimation.stop(); 
     frameAnimation.start(); 
     } 
+0

,但我想這將動畫按鈕點擊運行,如果我改變單穩爲false然後運行n個時間段。我希望當用戶點擊按鈕時,只有動畫應該開始播放。再次點擊用戶,然後播放這樣的動畫。 – Scorpion 2011-12-30 05:08:37

+1

@Scorpion ok查看我的更新回答。 – 2011-12-30 05:15:54

+0

非常感謝你..現在完成了...再次感謝! – Scorpion 2011-12-30 06:03:51