近来在写项目时,有遇到使用android原生的序列帧动画时,在部分手机(尤其是内存小的)上出现了OOM问题,这种问题是不可避免的。1.我觉首先你要看看是否有适配问题,因为你选择播放的图片要是没有放入对应的适配drawable文件夹,也会出现OOM问题。别说是连播图片了,就连普通的背景切换都有这种风险。2.要是上述没问题,那么就要换思路了。在网上看别人的解决方法,发现了一种好的方法,利用Handle原理来实现图片快速切换效果,这种方法我用到现在还没有一次OOM过,这我也是借鉴别人的。不BB了,上代码。
写的时候最好在外面套一个try( ) { }catch( OutOfMemoryError e){ System.gc(); } 通过catch去捕捉OOM异常,然后通知gc去回收。其实android里面调用gc并不能马上进行回收,但我觉得这样DoubleAdopting (看过片的都知道)。
新建一个类SceneAnimation:
<span style="font-size:18px;">public class SceneAnimation
{
//传入的关联动画的imageView对象(这里不一定是ImageView也可以是其他)
private ImageView mImageView;
//图片数组对象