我试图有问题地向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设为空并重新创建它,但没有重置帧。
任何帮助都将不胜感激。
发布于 2011-12-07 03:43:11
试着这样做
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();https://stackoverflow.com/questions/8403187
复制相似问题