下载:http://code.google.com/p/gifview/downloads/list

简介:android中现在没有直接显示gif的view,只能通过mediaplay来显示,且还常常不能正常显示出来,为此写了这个gifview,其用法和imageview一样

使用方法:

1-把GifView.jar加入你的项目。

2-在xml中配置GifView的基本属性,GifView继承自View类,和Button、ImageView一样是一个UI控件。如:

<com.ant.liao.GifView android:id="@+id/gif2"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:paddingTop="4px" android:paddingLeft="14px" android:enabled="false" />

3-在代码中配置常用属性:

// 从xml中得到GifView的句柄
gf1 = (GifView) findViewById(R.id.gif1);
// 设置Gif图片源
gf1.setGifImage(R.drawable.gif1);
// 添加监听器
gf1.setOnClickListener(this);
// 设置显示的大小,拉伸或者压缩
gf1.setShowDimension(, );
// 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示
gf1.setGifImageType(GifImageType.COVER);

GifView的Jar包共有四个类:

GifAction.java:

观察者类,监视GIF是否加载成功

package com.ant.liao;
public interface GifAction {
/**
*gif解码观察者
* @hide
* @param parseStatus 解码是否成功,成功会为true
* @param frameIndex 当前解码的第几帧,当全部解码成功后,这里为-1
*/
public void parseOk(boolean parseStatus,int frameIndex); }

GifView的Jar包共有四个类:

GifAction.java:

观察者类,监视GIF是否加载成功

package com.ant.liao;
public interface GifAction {
/**
*gif解码观察者
* @hide
* @param parseStatus 解码是否成功,成功会为true
* @param frameIndex 当前解码的第几帧,当全部解码成功后,这里为-1
*/
public void parseOk(boolean parseStatus,int frameIndex); }

GifFrame.java

里面三个成员:当前图片、延时、下张Frame的链接。

package com.ant.liao;
import android.graphics.Bitmap;
public class GifFrame {
/**
* 构造函数
* @param im 图片
* @param del 延时
*/
public GifFrame(Bitmap im, int del) {
image = im;
delay = del;
}
public GifFrame(String name,int del){
imageName = name;
delay = del;
}
/**图片*/
public Bitmap image;
/**延时*/
public int delay;
/**当图片存成文件时的文件名*/
public String imageName = null;
/**下一帧*/
public GifFrame nextFrame = null;
}

GifDecoder.java

解码线程类

http://code.google.com/p/gifview/source/browse/trunk/src/com/ant/liao/GifDecoder.java

GifView.java

主类,包括常用方法,如GifView构造方法、设置图片源、延迟、绘制等。

http://code.google.com/p/gifview/source/browse/trunk/src/com/ant/liao/GifView.java

Android开源项目:GifView——Android显示GIF动画的更多相关文章

  1. [Android 开源项目学习]Android的UITableView(1)

         最近由于项目加急,手里有好多看了差不多的开源项目,其中好多是大家经常用到的.图片的缓存BitmapFun(Android的文档中),AfinalMap,下拉刷新PullToRefresh等等 ...

  2. Android 开源项目及其学习

    Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...

  3. Android 开源项目维护者宣布退出

    Android开源项目(Android Open Source Project,AOSP)的长期维护者Jean-Baptiste Quéru在Google+上宣布退出,他退出AOSP项目的原因被认为与 ...

  4. GitHub 优秀的 Android 开源项目(转)

    今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...

  5. GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  6. GitHub 优秀Android 开源项目

    阅读目录 1.Xabber客户端 2.oschina客户端 3.手机安全管家 4.星座连萌 5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11 ...

  7. 【转】GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  8. 【Android 应用开发】GitHub 优秀的 Android 开源项目

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  9. [转]GitHub 优秀的 Android 开源项目

    GitHub 优秀的 Android 开源项目 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageV ...

  10. 2015-2016最火的Android开源项目--github开源项目集锦(不看你就out了)

    标签: Android开发开源项目最火Android项目github 2015-2016最火的Android开源项目 本文整理与集结了近期github上使用最广泛最火热与最流行的开源项目,想要充电与提 ...

随机推荐

  1. 【MongoDB】The description of procedure in MongoDB

    In this blog the procedure of mongodb will be described in details. It is known that mongodb has pro ...

  2. File to byte[] in Java

    File to byte[] in Java - Stack Overflow https://stackoverflow.com/questions/858980/file-to-byte-in-j ...

  3. linux下nginx模块开发入门

    本文模块编写参考http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html 之前讲了nginx的安装,算是对n ...

  4. YTU 2904: B--Faultfinding

    2904: B--Faultfinding 时间限制: 1 Sec  内存限制: 128 MB 提交: 64  解决: 33 题目描述 Do you remember the game in whic ...

  5. mysql数据恢复失败记录

    今天遇到了MySQL有几个数据表空间丢失的问题,作为一个外行尝试好久没恢复成功,考虑到只是几个基础数据表,就删除数据表停止服务,删除ibd文件后再创新创建表解决了问题. 近期的一些事让我不像以前一样钻 ...

  6. JS事件流与DOM事件处理程序

    在Javascript的DOM中,关于事件Event对象的知识是一定要掌握的.Event对象模型主要分为两个部分,一个是Event对象本身具有的属性和方法,这个参照API就可以学得:另一个是在DOM节 ...

  7. ie7 总结

    1 ie7 对部分属性选择器严重区分大小写 在HTML中,属性名,例如id, title之类是不区分大小写的,CSS中的选择器也应该是如此.但是IE7对属性名是严格区分大小写的! 2 关于属性选择器, ...

  8. Wait示例分析

    wait方法使"当前线程"进入阻塞(等待)状态. 示例分析: public class TestWait { public static void main(String[] ar ...

  9. ==和equals()的不同点

    两者都可以用于对象的比较."=="用于比较两个对象的内存地址值(引用值)是否相等,equals()方法用于比较两个对象的内容是否一致. String str1 = new Stri ...

  10. 第四章vs2107 代码实际运用-后台权限管理讲解 创建角色

    先看一下项目整体结构图: 实体类和数据操作都在前面用TT模板批量生产了.下面开始介绍权限代码这块的逻辑. 创建角色开始. 1. 角色的创建我们用到三张表 A.menuinfo(菜单表)  role(角 ...