Android 帧动画第二次就不动了,也是奇怪的很。
帧动画的具体使用这里就不介绍了,能遇到问题的,肯定都是已经知道怎么用了。

一般用法:

animationIV.setImageResource(R.drawable.animation1); // animation-list 的 .xml
animationDrawable = (AnimationDrawable) animationIV.getDrawable();
animationDrawable.start();

一般都是这么用的。
但是在 HTC_D820ys 和 努比亚Z9 mini NX511J 手机上,第一次可以动,但是第二次就不动了。原因未知。
改法就是换了一种获取动画图片的方式,如下:

animationIV.clearAnimation();
animationDrawable = (AnimationDrawable) getResources().getDrawable(R.drawable.link_btn_anim);
animationIV.setImageDrawable(animationDrawable);
animationDrawable.start();

这样就可以正常播放动画了。


推测原因:

  1. 在某些机型上 每个 View 上面的 getDrawable() 帧动画只能 start() 一次,所以每次进来要把动画重新获取一遍。
  2. 也可能是因为在某些机型上 animationIV.getDrawable() 这个方法只能获取最后一帧的图片,意思就是动画播放完了。