2014-10-03 50 views
1

我与此question asked 2 years ago有同样的问题,没有有效的答案(请不要关闭此问题的重复内容;目前还没有答案/解决方案)AnimationDrawable从特定帧开始?

所以,我有一个AnimationDrawable编程,我想在特定的框架开始动画。

当我停下来并且通过指定一个框架再次开始动画时,动画显示了正确的框架,但在跳回到第一帧之后才运行动画。例如:

// Stopping the animation 
animation.stop(); 

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

什么应该是正确的做法?

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

任何快速的一个简单的方法来做到这一点?

Thx!

回答

1

因此,很遗憾没有公开的setFrame()方法。但是,它实现Runnable,并且run()的实现调用nextFrame(false),其调用到setFrame()。因此,它肯定是一个黑客,但你可以实现一个方法,如:

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

原本应该推进可绘制到合适的框架。

+0

谢谢你的回答。我正试图在你的代码中加入你的黑客。我回头告诉你。 – 2014-10-03 21:15:10