您的位置:首页 > 移动开发 > Android开发

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

2016-05-12 18:24 302 查看

前言

今天,接触到了动态图。在网上了解到主要就是自定义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里面的监听事件,就会有个缓存清除的机制,在实现过程中大家要注意这个隐患。(如有问题,欢迎指教学习!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: