gif动态框架使用问题(android-gif-drawable)

前言

今天,接触到了动态图。在网上了解到主要就是自定义ImageView,实现逐帧播放。在寻思一会后,决定采用github大神的https://github.com/koral--/android-gif-drawable方便快捷(或者gifView)

动态图实现

<pl.droidsonroids.gif.GifImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/src_anim"
    android:background="@drawable/bg_anim"
    />

一开始,导入插件之后,直接在xml就这样实现了,觉得再爽不过了。于是就特么嗨皮的嵌入自己的项目。之后发现没有动态效果,一直在查找原因,因为在Demo里面加载GIF图片是完全没有问题的。后面折腾了一会,发现项目图片都是从网络获取下载写入的,才会导致gif失效。

网络加载GIF图片问题

发现问题之后,去github上面框架看了作者文档,并没有什么头绪。除了文档其他资料少之又少。既然,它能显示本地图片,那我何不获取本地图片呢(这里主要是项目图片都有缓存在本地)。主要代码:
GifDrawable gifDrawable = null;
                            try {
                                gifDrawable = new GifDrawable(Constants.IMG_SAVE_STORE + Hash.getHashName(animation[ANIMATION_URL]));
                                imageView.setImageDrawable(gifDrawable);
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
GifDrawable参数里面是本地文件路径

结论

这里要注意的是,涉及到动态图,框架没有做内存缓存与清除,当Gif图片大量加载可能会出现OOM问题。所以个人是把网络加载gif图的代码放在了ImageLoader里面的监听事件,就会有个缓存清除的机制,在实现过程中大家要注意这个隐患。(如有问题,欢迎指教学习!)

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值