AnimationDrawable內存溢出优化

AnimationDrawable內存溢出优化

前提介绍

使用AnimationDrawable播放动画一般代码如下,系统会将所有的资源加载到APP,
R.drawable.anim资源较多图片较大,手机配置较低时,会出现OutOfMemoryError

    imageView.setImageResource(R.drawable.anim);
    drawableAnim = (AnimationDrawable) imageView.getDrawable();
    drawableAnim.stop();
    drawableAnim.start();

下面将介绍一种替换方式,避免出现OutOfMemoryError.

FasterAnimationsContainer原理

  • 详细Android工程源码:
    https://gitee.com/chenjim/FasterAnimationDrawable
  • 逐帧decode图片为bitmap,通过BitmapFactory.Options.inBitmap,
    复用bitmap减小内存消耗,
    参见:FasterAnimationsContainer.java

效果对比如下

效果对比

参考文章
https://github.com/tigerjj/FasterAnimationsContainer

你可能感兴趣的:(AnimationDrawable內存溢出优化)