Glide3.7升级到4.X

        现在做android应用开发图片加载这一块基本上都是用的Glide,3.7升级到4.x的过程中,依赖导入方式没有发生变化,只需要变更版本号就可以了,最大的区别在于使用Glide进行图片加载的时候参数设置方面。

dependencies {
    compile 'com.github.bumptech.glide:glide:3.7.0'
}

变更后:

dependencies {
    compile 'com.github.bumptech.glide:glide:4.8.0'
}

在使用过程中,最大的变化就是4.x之后引入了RequestOptions 设置,并且把设置缓存机制 ,占位图等操作移到了RequestOptions里。。

占位图

RequestOptions options = new RequestOptions()
                .placeholder(R.drawable.sishen);

        Glide.with(this)
                .load(url)
                .apply(options)
                .into(ivTest);

先创建了一个RequestOptions对象,然后调用它的placeholder()方法来指定占位图,再将占位图片的资源id传入到这个方法中。最后,在Glide加载之前调用apply()方法传入RequestOptions。

错误占位图

RequestOptions options = new RequestOptions()
                .placeholder(R.drawable.sishen)
                .error(R.drawable.error) ;

        Glide.with(this)
                .load(url)
                .apply(options)
                .into(ivTest);

只要在构建RequestOptions设置error就可以。

图片大小

Glide会自动根据ImageView的大小来决定图片的大小,如果有这样的需求必须指定一个图的大小可以通过RequestOptions指定。

RequestOptions options = new RequestOptions() 
        .override(200, 200); 

使用override()方法指定了一个图片的尺寸,Glide只会将图片加载成200*100像素的尺寸。

缓存机制

缓存分为内存缓存和硬盘缓存。

Glide是自动开启内存缓存的。如果需要禁用。

RequestOptions options = new RequestOptions() 
        .skipMemoryCache(true); 

硬盘缓存有几个参数

  • DiskCacheStrategy.NONE: 表示不缓存任何内容。
  • DiskCacheStrategy.DATA: 表示只缓存原始图片。
  • DiskCacheStrategy.RESOURCE: 表示只缓存转换过后的图片。
  • DiskCacheStrategy.ALL : 表示既缓存原始图片,也缓存转换过后的图片。
  • DiskCacheStrategy.AUTOMATIC: 表示让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)。
RequestOptions options = new RequestOptions() 
        .diskCacheStrategy(DiskCacheStrategy.DiskCacheStrategy.AUTOMATIC); 

加载格式

Glide会自动判断图片的格式,自动显示gif图。如果需要指定格式,通过以下方法

静态图:

Glide.with(this) 
     .asBitmap() 
     .load("http://guolin.tech/test.gif") 
     .into(imageView);
//如果你传入的还是一张GIF图的话,Glide会展示这张GIF图的第一帧,而不会去播放它。

gif图:

Glide.with(this) 
     .asGif() 
     .load("http://guolin.tech/test.gif") 
     .into(imageView);

图片交换

Glide加载图片可以进行一些变换的操作。比如圆角,模糊等。

添加图片变换的用法非常简单,我们只需要在RequestOptions中串接transforms()方法,并将想要执行的图片变换操作作为参数传入transforms()方法即可;

RequestOptions options = new RequestOptions() 
        .transforms(...); 
Glide.with(this) 
     .load(url) 
     .apply(options) 
     .into(imageView);

具体要进行什么样的图片变换操作,需要我们自己来写的。不过Glide已经内置了几种图片变换操作,我们可以直接拿来使用,比如CenterCrop、FitCenter、CircleCrop等。所有的内置图片变换操作其实都不需要使用transform()方法,Glide为了方便我们使用直接提供了现成的API:

RequestOptions options = new RequestOptions() 
        .centerCrop(); 

RequestOptions options = new RequestOptions() 
        .fitCenter(); 

//圆形化裁剪
RequestOptions options = new RequestOptions() 
        .circleCrop();


 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值