1、准备工作:
在网上找了半天的资料,网上方案比较多的都是使用android.graphics.Movie;类来对gif实现解析并播放。我也尝试过,但是出现了一些我目前还难以解释的错误,如果也有其他人和我一样尝试,但是出错了的话,可以试试在SurfaceView基础上来画该Movie;因为我看到有直播的视频教程里这样教过,但是本人未试过。
设计分析:
主要任务:1、完成从网络上下载图片,2、图片下载下来后需要将图片文件在本地缓存,下次再下载之前可以先检查本地缓存,3、从本地文件加载图片,并解码图片,将解码之后的图片在内存中缓存,下次再加载的时候就直接从内存中取(这一步很关键,内存中的缓存,一定要注意缓存的解码之后的数据而不是解码之前)
1、数据解码部分
网上找到一个对gif数据解码的源码,可以实现的功能包括:从图片的解码数据中来判断一个图片是不是gif格式,将gif图片解析成bitmap+延时时间的List(即每一帧包含的图片数据和延时数据);
2、数据加载部分(包括下载和缓存)
数据加载部分指的是数据的下载、本地文件缓存、内存缓存等工作
3、图片gif显示的控件
基本上就是继承ImageView写一个自定义控件