使用方法:

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

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

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(300,

300);

//

设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示

gf1.setGifImageType(GifImageType.COVER);

GifView的Jar包共有四个类:

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

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

GifDecoder.java 解码线程类

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

这种实现方案比较好,可以直接加载网络上流的形式的图片也可以加载res下drawable中的图片还可以加载一个一个图片的byte数组。用法也比较简单,缺点就是当一个gif图片比较大时,可能会出现OOM。由于这种方案的解决思路是开启线程先解析一张gif图片,解析成一帧一帧的图片,然后再开启另外一个线程一帧一帧的显示。所以当一个gif图片过大的时候,解析成的一系列的图片就会很多很大。容易出现OOM的情况。所以我们在播放很大很长的gif图片的时候,就需要先设置一下图片的属性,降低图片的容量,尽量避免出现OOM的情况。

当然以上的两种方案是比较常用的方案,除此之外也还有其他的解决方案,比如利用webview加载gif图片、利用mediaplayer播放动态图片等等,这些方案一般比较复杂,而且本人我也没有用过,所以这里就不再叙述。

这只是我个人的一点小见解,如果有什么错误,希望大家不吝赐教。

gif android 点击 加载,android 加载显示gif图片的解决方案相关推荐

  1. Android WebView 视频播放,全屏按钮不显示或灰显解决方案

    Android WebView 视频播放,全屏按钮不显示或灰显解决方案 背景 问题定位 背景 在Android开发中,遇到了如下问题:Activity内嵌WebView,加载有视频的页面时,视频无法全 ...

  2. Android点击无响应,Android Studio无响应打不开的解决办法

    最近谷歌发布了Android Studio,下载安装之后,在使用时发现一个问题,那就是发布无响应且无法启动,也就是点击Android图标的时候没有任务反应,我想说的是你需要重新配置一下环境~ 因为这个 ...

  3. android 关于listview scrollview 底部 控件无法显示的两个解决方案

    方案一 用LinearLayout实现,代码如下: <!-- 中奖纪录 by mhd --><LinearLayout xmlns:android="http://sche ...

  4. android 点击图标重启,Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题的解决方法...

    Android应用第一次安装成功点击"打开"后Home键切出应用后再点击桌面图标返回导致应用重启问题的解决方法 if((getIntent().getFlags() & I ...

  5. android点击选择相册,android: 从相册中选择照片

    虽然调用摄像头拍照既方便又快捷,但并不是每一次我们都需要去当场拍一张照片的. 因为每个人的手机相册里应该都会存有许许多多张照片,直接从相册里选取一张现有的照 片会比打开相机拍一张照片更加常用.一个优秀 ...

  6. android 点击返回顶部,Android scrollToTop实现点击回到顶部(兼容PullTorefreshScrollview)...

    前言 最近因为项目组需求,特研究了一下"回到顶部"效果,即:页面里有scrollview,内容很多,当滑动到页面下面或者更深时,需要回到顶部,即可点击出现的按钮,省得回滑N久.我没 ...

  7. android 点击跳过,android开发里跳过的坑——button不响应点击事件

    昨天遇到一个头疼的问题,在手机上按钮事件都很正常,但是在平板上(横屏显示的状态),button点击事件不响应,代码简化如下: public class Test extends Activity im ...

  8. android点击按钮静音,android 实现一键静音功能

    最近在android5.1上面做一个功能,类似苹果的一键静音功能.山寨大国,一直模仿,但从未超越,别人做什么,砸门跟着做.下面就来看看android究竟怎么实现这个功能呢? 刚开始我也不知到怎么做,怎 ...

  9. android 点击事件消费,Android View事件分发和消费源码简单理解

    Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...

最新文章

  1. Jmeter学习(三)
  2. UNITY 多SCENE加载与编辑
  3. visual studio2008 OpenGL开发配置
  4. c++组合 聚合 关联
  5. react-redux笔记
  6. 新能源补贴退坡 广汽新能源、比亚迪不涨价 蔚来最狠!
  7. java 字符串 ansi转utf8_在Java中将ANSI字符转换为UTF-8
  8. python中各种@property、@xxx.setter、@classmethod、@staticmethod 都是些啥啊?
  9. 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理
  10. RHEL 5基础篇—管理系统计划任务
  11. php电脑维修店网站源码,某电脑维修网站整站打包 v1.1
  12. 第2章-计算机组成原理之概述篇
  13. Java Apache POI 小记(读取Word通过模板创建PPT)
  14. java 抓smail_java如何定位代码到smail里,如图0.0
  15. mysql的month_MySQL MONTH()用法及代码示例
  16. java计算机毕业设计楼宇管理系统源码+数据库+lw文档+系统
  17. javaserver_JavaServer页面简介
  18. 宣传文本html,优秀的宣传语(精选50句)
  19. AMR-WB 比特流---单通道多帧,120ms RTP打包
  20. js复制方法navigator.clipboard兼容性处理,控制台直接执行报错 DOMException: Document is not focused

热门文章

  1. .NET Core应用类型(Portable apps amp; Self-contained apps)
  2. ubuntu 以太网已连接但是无法联网_工业以太网有多“牛X”?两个案例告诉你
  3. 【ArcGIS风暴】GlobeLand30全球数据处理教程(批量投影转换、无效值处理、拼接)
  4. GPS基站架设完整操作流程
  5. Android之error: void value not ignored as it ought to be(In function ‘callMethod2‘)解决办法
  6. shell--指“提供使用者使用界面”的软件(命令解析器)
  7. Android之adb shell dumpsys activity获取task里面的所有actitiy
  8. 栈和队列之生成窗口最大值数组
  9. [python opencv 计算机视觉零基础到实战] 十三 直方图颜色提鲜
  10. python截图拼接_Python实现屏幕截图有两种方式 - 小众知识