FrameAnimation
如果有播放超多帧动画的需求,直接点击 FrameAnimation 在github查看,百分之99.99能满足你的需求,基本此文就可以终结了。
PS. 此文年久失修,上述代码的具体实现本文已有较大差距,不过整体思路还是可以参考下的。
关于Android帧动画
当在应用中需要使用帧动画的时候,最先想到的就是Android提供的AnimationDrawable了,但是如果帧动画中如果包含上百帧图片,此时再用AnimationDrawable就不是那么理想了。AnimationDrawable使用一个Drawable数组来存储每一帧的图像,会直接把全部图片加载进内存。随着帧数量的增多,就算性能再强劲的机器也会卡顿、OOM。
使用SurfaceView来实现帧动画的效果
最近的项目中需要用到大量的帧动画(各种闪瞎24K钛合金狗眼的礼物效果,多的高达200帧),既然AnimationDrawable不行,就想到了两种解决方法。
第一个想到的解决办法就是用openGL来绘制了。
因为是直播的项目,包含人脸贴图等都是用opengl绘制的,如果用OpenGL绘制一层Texture直接推流还省