第一次写博客就纠结在了这篇博客是不是原创的问题上,由于原来有人发过使用movie方式来播放Gif动画的例子,不过都非常简单,不支持网络gif动画的加载,而且,该控件的wrap_content属性根本没作用,我花了一些时间来把这些完成。
好,进入正题,我们通过android 系统提供的Movie类来辅助播放Gif,在Movie的声明上,该类提供了三个方法:
1.Movie.decodeByteArray(data, offset, length); 通过byte数据来进行初始化
2.Movie.decodeFile(pathName) 通过本地文件的路径来进行初始化
3.Movie.decodeStream(is) 通过流来进行初化
一开始,我使用Movie.decodeStream(is)来初始化资源文件下的gif文件并无问题,使用方法:movie = Movie.decodeStream(getResources().openRawResource(id));
但是在我使用一个URL打开一个流,将这个inputStrem传到Movie.decodeStream(is),这时候会出现一个异常,inputStrem reset,令我很是费解,打开Movie类里面的方法都是native声明的,也就是本地方法,看不到具体是怎么实现的,但是我觉得他肯定是不支持网络的流,具体情况还请懂的大神给我解惑一下。