Android基于Glide(4.6.1)加载gif实践

本文介绍了Glide在Android中的应用,详细讲解了如何使用Glide加载Gif动画,包括解决加载慢的问题、加载第一帧、控制播放次数、处理切换页面时的显示问题,以及监听Gif播放完成。同时,探讨了如何通过缓存策略和预加载来提高加载速度。
摘要由CSDN通过智能技术生成

1.Glide是什么?

Glide是一个面向Android的快速高效的开源媒体管理和图像加载框架,它将媒体解码、内存和磁盘缓存以及资源池封装到一个简单易用的接口中;

Glide支持获取、解码和显示视频静像、图像和动画GIF。Glide包括一个灵活的API,允许开发人员插入几乎任何网络堆栈。默认情况下,Glide使用自定义的基于HttpUrlConnection的堆栈,但也包括插件到Google的Volley项目或Square的OkHttp库中的实用程序库。

Glide的主要重点是尽可能平滑和快速地滚动任何类型的图像列表,但Glide也适用于几乎任何需要获取、调整大小和显示远程图像的情况;

2.Glide依赖

在app_module下bulid.gradle添加glide依赖

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.6.1'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
}

3.Glide如何加载gif动画

//默认用glide加载本地或者网络gif图片

Glide.with(Context)
        .asGif()
        .load(res或者gif的url链接)
        .into(ImageView);

3.1解决Glide加载gif非常慢的问题

添加缓存策略提高加载显示速度

RequestOptions options = new RequestOptions()
        .fitCenter()
        .diskCacheStrategy(DiskCacheStrategy.DATA);
Glide.with(context)
        .asGif()
        .load(res)
        .apply(options)
        .into(imageView);

为其添加缓存策略,其中缓存策略可以为:DATA及None,None及为不缓存,DATA缓存原型;推荐使用DATA在资源解码前缓存,保证图片不被压缩,此属性会导致第一次加载过慢,我的解决办法是做预加载

Glide3.0和4.0的缓存策略DiskCacheStrategy区别

Glide3.0

            DiskCacheStrategy.NONE:不缓存
            DiskCacheStrategy.SOURCE:之缓存原图
            DiskCacheStrategy.RESULT:只缓存最终要显示的图片(默认选项; Picasso默认缓存原图)
            DiskCacheStrategy.ALL:缓存所有版本的图片

Glide4.0

            DiskCacheStrategy.ALL 使用DATA和RESOURCE缓存远程数据,仅使用RESOURCE来缓存本地数据;
            DiskCacheStrategy.NONE 不使用磁盘缓存;
            DiskCacheStrategy.DATA 在资源解码前就将原始数据写入磁盘缓存;
            DiskCacheStrategy.RESOURCE 在资源解码后将数据写入磁盘缓存,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值