Android 帧动画OOM问题优化

当处理大量高清帧动画时,可能会遇到OOM问题。本文介绍了如何通过使用线程和位图内存复用来优化帧动画,避免一次性加载所有图片导致的内存溢出。详细解释了优化思路和实现代码,并提供了优化前后的效果对比。
摘要由CSDN通过智能技术生成

转载请注明出处,谢谢

  • 普通实现

实现一个帧动画,最先想到的就是用animation-list将全部图片按顺序放入,并设置时间间隔和播放模式。然后将该drawable设置给ImageView或Progressbar就OK了。
首先创建帧动画资源文件drawable/anim.xml,oneshot=false为循环播放模式,ture为单次播放;duration为每帧时间间隔,单位毫秒。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >

    <item
        android:drawable="@drawable/img0"
        android:duration="17" />
    <item
        android:drawable="@drawable/img1"
        android:duration="17" />
    <item
        android:drawable="@drawable/img2"
        android:duration="17" />
</animation-list>

然后在代码中找到播放该动画的ImageView,将资源赋给该控件就可以控制动画开始与结束了,是不是超简单。

AnimationDrawable animationDrawable;
if (imageView.getDrawable() == null) {
                     imageView.setImageResource(R.drawable.loading_anim);
                        animationDrawable = (AnimationDrawable) imageView
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值