作为一个正规的android APP,动态图片是少不了的!然而android官网jar包并没有提供这样的功能,不禁让人捉急,稍微百度了一下,发现这个GifView,还是挺方便的,故拿过来用了一下,还行!
一 简况
作者:ant.cy.liao
主页:http://code.google.com/p/gifview/
下载:google可能有些人不好访问,下面给出下载地址和wifi。 Jar包 例子指南
简介:android中现在没有直接显示gif的view,只能通过mediaplay来显示,且还常常不能正常显示出来,为此写了这个gifview,其用法和imageview一样.简单方便.
此开源包目前存在一个Bug,就是当gif图片资源很大的时候就会出现OOM异常(内存溢出),解决方法:先缓存到文件,再读出来,具体的自己琢磨或者看官方指导Demo。
二 使用方法
1-把GifView.jar加入到你的项目。
2-在xml中配置GifView的基本属性
GifView继承自View类,和Button、ImageView一样是一个UI控件。如:
<!-- 使用 开源项目 GifView 来显示动态Gif --> <com.ant.liao.GifView android:id="@+id/imageView" android:layout_marginBottom="30dp" android:layout_width="85dp" android:layout_height="81dp" android:scaleType="fitCenter" />
也可以在代码中进行大小的设置等等
3-在代码中配置常用属性:
GifView gf1; // 从xml中得到GifView的句柄 gf1 = (GifView) findViewById(R.id.gif1); // 设置Gif图片源 gf1.setGifImage(R.drawable.gif1); // 添加监听器 gf1.setOnClickListener(this); // 设置显示的大小,拉伸或者压缩 gf1.setShowDimension(300, 300); // 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示 gf1.setGifImageType(GifImageType.COVER);
至此,一个显示gif动画的例子就完成了!
贴一下我自己的项目的截图。
Comments 18 条评论
gif图片怎么自适应
@无人过问 wrap_content就行啦。
你好请问 你会报这个异常吗java.lang.NullPointerException,at com.ant.liao.GifView$DrawThread.run
@开发 这个开源项目本身是没有问题的,我也没有遇到过。你遇到的这个空指针我猜可能是图片路径问题,没有读取到。
@开发 请问解决了没?我也遇到同样的问题
@开发 请问解决了吗?我也遇到这个问题
为什么在使用之后会非常的占用内存,多次打开会变得越来越不流畅
@你好 实际上Gif就是多个普通图片的叠加,如果动画太长,相当于加载了很多图片。至于多次打开不流畅的问题,可能是你使用完之后没有释放吧。可以在dispose或者pause中处理一下。
@小树 `
请问怎么控制它只播放一次,还有就是播放完后有没有什么监听事件
:smile:
还是会出现OOM 我做的是IM显示gif图片内容
你好,我使用这个包的时候会出现如下错误,
10-21 16:10:33.998: E/AndroidRuntime(26549): at com.ant.liao.GifView$DrawThread.run(GifView.java:317)
1
打开就出现停止运行了
此文章已太过久远,有任何问题请直接联系GITHUB主:https://code.google.com/p/gifview/
好风骚的博客,赞