首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AnimationDrawable无法清除帧

AnimationDrawable无法清除帧
EN

Stack Overflow用户
提问于 2011-12-07 00:19:04
回答 1查看 2.3K关注 0票数 2

我试图有问题地向AnimationDrawable添加帧和持续时间,但我无法获得我想要的结果。我可以添加帧,但后续调用不会清除旧帧。有没有重置AnimationDrawable的方法?

以下是我的代码的摘录:

代码语言:javascript
复制
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,但均未成功。

代码语言:javascript
复制
iv.setImageDrawable(null);
iv.setBackgroundDrawable(null);
a = new AnimationDrawable();
iv.clearAnimation();

我还尝试将ImageView设为空并重新创建它,但没有重置帧。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-07 03:43:11

试着这样做

代码语言:javascript
复制
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();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8403187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档