Glide 4.0 相比 Glide 3.0 及使用详解

Glide 4.0带来了新的文档贡献方式、简化API和性能提升。用户可以自定义选项,加载资源类型更加灵活。状态上,4.0已由Google内部稳定使用,即将发布非RC版本。迁移时需关注RequestBuilder、RequestOptions、TransitionOptions的变化,以及配置中的AppGlideModule和LibraryGlideModule更新。
摘要由CSDN通过智能技术生成

1.变化

单独列出的更改太多,但这里有一些亮点:

  • 新的文档,用户可以通过提交请求到Glide’s gh-pages分支贡献。
  • 用户可以添加新类型或自定义选项集来轻松地自定义Glide流畅的API。
  • 大量简化个人请求类型,确保选项始终如一,易于使用,即使您正在加载不同类型的资源。
  • 各种性能改进,包括在下载采样图像时大量减少垃圾,更加智能的默认磁盘缓存策略,以及加载GIF时性能提升。
  • 改进了视图大小和布局的处理,特别是在RecyclerView中。

2.状态

Glide 4.0由Google的各种团队内部使用,4.0被认为是内部稳定的。但外部用户可能会发现内部尚未发现的问题。因此,将此作为RC发布。如果没有发现稳定性或API中的重大问题,预计不久之后就会发布非RC版本。

3.发布时间表

Glide在过去采取了一种相当随意的方式发布,主要是因为在空闲的时候采取做。未来,Glide有望尝试提供定期发布:

  • 每个月15日左右发行(确切的日期可能有所不同)
  • 只有在前版本中没有更改的情况下才会跳过此版本。
  • 只有在主要版本升级的时候才会去更改API。

4.下载

链接 大小
glide-full-4.0.0-RC0-javadoc.jar 1.3 MB
glide-full-4.0.0-RC0-sources.jar 341 KB
glide-full-4.0.0-RC0.jar 582 KB
Source code (zip)  
Source code (tar.gz)  

更多下载请移步官网:Glide 4.0.0 RC0 官方说明

从V3迁移到V4

About Glide

1.Options(选项)

一个在GlideV4变化较大的是库处理选项的方式(centerCrop(),placeholder()等)。在Glide v3中,选项是由一系列复杂的多类型构建器单独处理的。在Glide v4中,这些已被具有单一类型的单个构建器和可以提供给构建器的一系列选项的对象所替代。Glide 生成的API通过将选项对象和任何包含的集成库与构建器的选项合并,来创建单个流畅的API。 
如下,options分类被放在不同的对象里,我们挨着看每个具体的方法:

(1)RequestBuilder

包括以下方法:

listener() 
thumbnail() 
load() 
into()

在Glide v4中,只有一个RequestBuilder,它使用单一的类型加载到你的项目(类型Bitmap,Drawable,GifDrawable等)。RequestBuilder提供了影响加载过程本身的选项,比如要加载的类型(url, uri etc),任何 thumbnail()和listener()请求,RequestBuilder也提供在哪里开始加载的方法, into() or preload()。 
我们看一下,下面的示例代码:

RequestBuilder<Drawable> requestBuilder = Glide.with(fragment)
    .load(url);

requestBuilder
    .thumbnail(Glide.with(fragment)
        .load(thumbnailUrl))
    .listener(requestListener)
    .load(url)
    .into(imageView);

实战示例:

Glide.with(this)
      .load(ImageConfig.URL_WEBP)
      .thumbnail(Glide.with(this).load(ImageConfig.URL_JPEG))
      .listener(new RequestListener<Drawable>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                        Logger.e("onLoadFailed --->" +e);
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                        Logger.e("onResourceReady---> " + resource);
                        return false;
                    }
                })
     .into(iv_test1);

效果图: 
我们可以看到第一次安装完成之后,在gif没有加载出来先加载缩略图,然后再加载gif图片,个人感觉加载gif图片的速度是比之前快多了,这些都是加载网络图片和网速也有一定关系。 
加载完成后,推出APP,再次进入会首先加载之前缓存在本地的图片,所以还是那么的爽。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值