我的问题与此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!
答案 0 :(得分:1)
所以,遗憾的是,没有公共setFrame()
方法。但是,它会实现Runnable
,run()
调用nextFrame(false)
的实现会调用setFrame()
。所以,它肯定是一个黑客,但你可以实现一个方法,如:
public static void setAnimationFrame(AnimationDrawable anim, int frame) {
for (int i = 0; i < frame; i++) {
anim.run();
}
}
哪个应该将Drawable推进到正确的框架。