AnimationDrawable从特定帧开始?

时间:2014-10-03 17:37:52

标签: android android-animation

我的问题与此question asked 2 years ago相同,没有有效答案(请不要因重复内容而关闭此问题;目前还没有答案/解决方案)

所以,我有一个AnimationDrawable以编程方式制作,我想在特定的帧开始动画。

当我停下来并通过指定一个帧再次开始动画时,动画会显示正确的帧,但只是在跳回第一帧后才能运行动画。例如:

// Stopping the animation 
animation.stop();

// Starting the animation again
animation.start();
animation.selectDrawable(9);

什么是正确的做法?

我是否必须动态重新创建动画并将动画9中的第9帧设置为animation.addFrame(myDrawable9, duration),下一帧将是10,11,12 ... 1,2,3 ,4,5,6,7,8?

任何快速简单的方法吗?

THX!

1 个答案:

答案 0 :(得分:1)

所以,遗憾的是,没有公共setFrame()方法。但是,它会实现Runnablerun()调用nextFrame(false)的实现会调用setFrame()。所以,它肯定是一个黑客,但你可以实现一个方法,如:

public static void setAnimationFrame(AnimationDrawable anim, int frame) {
    for (int i = 0; i < frame; i++) {
        anim.run();
    }
}

哪个应该将Drawable推进到正确的框架。