2011-12-06 13 views
2

AnimationDrawableにフレームとデュレーションを問題に追加しようとしていますが、結果が得られません。私はフレームを追加することができますが、それ以降の呼び出しは古いフレームをクリアしません。 AnimationDrawableをリセットする方法はありますか?ここでAnimationDrawableでフレームを消去できません

は私のコードからの抜粋です:

public void animate() { 

    if (a != null && a.isRunning()) { 
     a.stop(); 
    } 

    //iv.setImageDrawable(null); 
    //iv.setBackgroundDrawable(null); 
    iv.setBackgroundResource(R.drawable.blank_animation); 
    a = (AnimationDrawable) iv.getBackground(); 

    a.addFrame(res.getDrawable(R.drawable.blank), 1); 
    for (int i=0;i<Frames.size();i++) { 

     a.addFrame(res.getDrawable(Frames.get(i)), AnimationSpeed); 

    } 
    a.addFrame(res.getDrawable(R.drawable.blank), 1); 

    a.setOneShot(true); 
    a.start(); 

} 

私はImageViewのおよび/またはAnimationDrawableのいずれかをクリアするには成功せず、次のことを試してみました。

iv.setImageDrawable(null); 
iv.setBackgroundDrawable(null); 
a = new AnimationDrawable(); 
iv.clearAnimation(); 

ImageViewをnullにして再作成しようとしましたが、フレームをリセットしませんでした。

ご協力いただければ幸いです。

答えて

3

が働いjobesu14 @その

a = new AnimationDrawable(); 
a.addFrame(res.getDrawable(R.drawable.blank), 1); 
for (int i=0;i<Frames.size();i++) { 
    a.addFrame(res.getDrawable(Frames.get(i)), AnimationSpeed); 
} 
a.addFrame(res.getDrawable(R.drawable.blank), 1); 
iv.setBackgroundDrawable(a); 

a.setOneShot(true); 
a.start(); 
+0

おかげのように試してみてください!唯一の問題はa.setBackgroundDrawable(anim)です。 iv.setBackgroundDrawable(a);にする必要があります。 ImageViewはAnimationDrawableに設定する必要があります。 – SunMan

+0

確かにあなたは正しいです。私は私の答えを訂正します。 – jobesu14

+0

これは私のために働いた。 –

関連する問題