Android gif播放控件,支持网络图片,控件大小可控

这篇博客介绍了如何创建一个Android自定义控件,用于播放GIF动画,支持从网络加载图片。作者通过分析Movie类的使用,解决了网络流播放GIF的问题,并实现了wrap_content属性,使控件大小可控。源码提供下载。
摘要由CSDN通过智能技术生成

第一次写博客就纠结在了这篇博客是不是原创的问题上,由于原来有人发过使用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声明的,也就是本地方法,看不到具体是怎么实现的,但是我觉得他肯定是不支持网络的流,具体情况还请懂的大神给我解惑一下。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值