AnimationDrawable无法清除帧

时间:2011-12-06 16:19:04

标签: java android imageview android-animation

我正在尝试向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置空并重新创建它,并且没有重置帧。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

尝试那样

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();