我和这个没有有效答案的question asked 2 years ago有相同的问题(请不要对重复的内容关闭这个问题;还没有答案/解决方案)。
因此,我有一个以编程方式制作的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?
有那么简单的方法吗?
谢谢!
发布于 2014-10-03 18:02:09
因此,不幸的是,没有公共的setFrame()方法。但是,它实现了Runnable,run()的实现调用了调用setFrame()的nextFrame(false)。因此,这当然是一次黑客攻击,但您可以实现如下方法:
public static void setAnimationFrame(AnimationDrawable anim, int frame) {
for (int i = 0; i < frame; i++) {
anim.run();
}
}这样才能使可拉拔到合适的框架。
https://stackoverflow.com/questions/26183919
复制相似问题