转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/75578109
本文出自【赵彦军的博客】

起因

最近在项目中遇到需要在界面上显示一个本地的 GIF 图。按照惯例我直接用了 Glide 框架来实现。

Glide 地址: https://github.com/bumptech/glide

我用的 Glide版本为 4.0.0-RC1 , 具体的实现代码如下:

 Glide.with( this ).asGif().load( R.drawable.yiba_location ).into( location_image ) ;

运行的效果很卡顿,我怀疑是不是方法没有用对,调了压缩模式,还是卡顿;调了缓存模式,还是卡顿。看了一下我的 gif 图,大小还是 800K ,是不是图片太大了,换了一张 100K 的 gif 图,这次显示的效果很好,gif 图播放的很流畅。至此,得出结论:Glide 框架自身的原因,播放大尺寸的 Gif 图的效果不是很理想。

方案

Glide 不行,那么就要另想其他方案,就去 github 上找一下。

排名第一的 android-gif-drawable 库 start 有 4.8K , 这个应该不错,试试吧。

android-gif-drawable : https://github.com/koral–/android-gif-drawable

引用:

 compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.7'

直接把布局文件中的 ImageView 替换为 GifImageView

<pl.droidsonroids.gif.GifImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:src="@drawable/yiba_location "/>

运行起来看看,果然很好啊,播放的很流畅,果断采用此方案。

探寻其他的属性:

GifImageView gifImageView = (GifImageView) findViewById(R.id.gifImageView);GifDrawable gifDrawable = (GifDrawable) gifImageView.getDrawable();

通过 GifImageView 对象获取到 GifDrawable 对象。

gifDrawable.start(); //开始播放gifDrawable.stop(); //停止播放gifDrawable.reset();  //复位,重新开始播放gifDrawable.isRunning(); //是否正在播放gifDrawable.setLoopCount( 2 ); //设置播放的次数,播放完了就自动停止gifDrawable.getCurrentLoop(); //获取正在播放的次数gifDrawable.getCurrentPosition ; //获取现在到从开始播放所经历的时间gifDrawable.getDuration() ; //获取播放一次所需要的时间

个人微信号:zhaoyanjun125 , 欢迎关注

Android 加载GIF图最佳实践相关推荐

  1. Android加载长图滑动显示

    1.记录下学到的Android加载长图写法以备后用 首先准备一张长图.这里把图片先放到项目的 assets文件夹下:命名为big.png 然后开始自定义显示长图的view :BigView impor ...

  2. android 漫画加载方案,Android加载长图的多种方案分享

    背景介绍 在某些特定场景下,我们需要考虑加载长图的需求,比如加载一幅<清明上河图>,这个好像有点过分了,那就加载1/2的<清明上河图>吧... 那TMD还不是一样道理. 言归正 ...

  3. android加载长图宽度自适应,Android使用Glide加载超长图

    app项目开发过程中,大都有查看图片详情的功能模块.实现的方式一般都是通过viewpager+photoView+Glide的方式.这种方式下,如果碰到加载超长图,比如说高清版的清明上河图/世界地图, ...

  4. Android 加载gif图,Glide

    个人中心 DownLoad Android 可以使用 Glide.Picasso.Fresco 等第三方库来加载 gif 图. 以 Glide 为例,可以按照以下步骤加载 gif 图: 1. 在 bu ...

  5. Android加载超长图(微博长图)

    对于一些需要加载超长图需求的同学,可能一开始使用使用bitmap或者inputstream转bitmap(或类似加载库)会发现出现图片太大加载不出来的问题(其实我也是遇到了这个问题ヽ(≧Д≦)ノ).解 ...

  6. android开发 加载大图,Android加载超长图(微博长图)

    对于一些需要加载超长图需求的同学,可能一开始使用使用bitmap或者inputstream转bitmap(或类似加载库)会发现出现图片太大加载不出来的问题(其实我也是遇到了这个问题ヽ(≧Д≦)ノ).解 ...

  7. android 展示大图,Android 加载超大图(原图)分析

    众所周知,Android的ImageView不支持加载大图(高分辨率),会直接报错,如果不是特别大的图片,也可以选择使用WebView来加载,并且直接可以实现手势方法缩小平移等效果,但是如果图片特别长 ...

  8. Android加载长图,仿微博长图滚动查看

    /** * Created by sunrui on 2017/3/8. * 加载长图片 * 解决步骤 * 1.将图片缩放到与控件等宽 * 2.判断缩放后的图片高度,如果高度大于控件高度较多(这里设置 ...

  9. Android 加载GIF图

    使用库https://github.com/koral--/android-gif-drawable 1.直接在gradle中引用 compile 'pl.droidsonroids.gif:andr ...

最新文章

  1. R语言neuralnet包构建神经网络模型:基于乳腺癌数据集
  2. 支付宝发布黑科技“如影计划”,这真的不是愚人节的玩笑
  3. 【深度学习】神经网络的Python代码实现
  4. HDU 2570 迷瘴
  5. [渝粤教育] 西南科技大学 政府经济学 在线考试复习资料
  6. python调用父类构造函数需要放在第一句吗_Python继承和调用父类构造函数
  7. 深入理解了MySQL,你才能说熟悉数据库
  8. 栅格单元值的选取方法_计算机求解微分方程的六大数值计算方法
  9. 利用建站快速软件包:XAMPP,构建基于winodws平台快速搭建PHP的数据库应用- kimai - 团队时间记录
  10. HDOJ-1019 Least Common Multiple
  11. Android蓝牙开发的一点总结
  12. DPDK报文分类与访问控制
  13. UML设计中的箭头详解
  14. 软件安装管家matlab教程,timesat软件怎么安装 timesat安装使用图文教程 - 驱动管家...
  15. 一句话点评国内在产主流A级车
  16. suse linux 添加网卡驱动,图文并茂介绍suse linux 11系统安装全过程以及suse系统下安装网卡驱动和刷新固件.doc...
  17. 母函数理解及整数拆分
  18. 三角网格库Triangle的使用
  19. 声明式导航与编程式导航
  20. android studio代码格式化设置,Android studio kotlin代码格式化操作

热门文章

  1. java 异步事件_Java编程入门——异步事件:轮询与中断
  2. Android 使用MD5对SharedPreferences密码进行加密
  3. 【机器学习算法专题(蓄力计划)】十三、机器学习中线性回归
  4. 七十七、 二叉树的层次遍历和最大深度
  5. NeurIPS 2021 | 华为诺亚Oral论文:基于频域的二值神经网络训练方法
  6. SIGIR 2021 | 基于不确定性正则化与迭代网络剪枝的终身情感分类方法
  7. ICML 2021 | Option-GAI: 机器人任务太长太复杂?不妨试试层次化模仿学习
  8. 免费公开课 | AI对抗攻防系列专题,今晚7点第一讲
  9. ACL 2020 | 用于多领域端到端任务型对话系统的动态融合网络
  10. 大规模中文概念图谱CN-Probase正式发布