重置Android中的帧动画播放

        最近在做个小项目的时候,需要用到帧动画。对应着某种状态,该动画可以停止和再次播放。我们知道,通过函数
someAnimObj.start() someAnimObj.stop

可以很容易地实现这两种需求,但是如果单纯这样做的话,会出现一个问题:第二次播放的第一帧竟然是上次停止播放时候的最后一帧,并且播放的速度会逐渐变快!

悲嘞个催的~搜索了一下,发现这个是Android帧动画的通病。现把解决方法写出来,与如我一样的菜鸟们一起分享。

((AnimationDrawable)(someImageView.getBackground())).stop();
someImageView.setBackgroundDrawable(null);
someImageView.setBackgroundResource(R.drawable.animation);

总的来说,就是重新加载了一下动画背景,使得帧动画得以重置。目前还不太清楚造成这种现象的根本原因,希望大牛们给我留言,给予指导帮助。


你可能感兴趣的:(android,android,android)