在Android开发软件开发中,一定会涉及到图片的显示,如果需要从后台获取数据的话那么Glide框架最合适不过了(本人常用),目前Glide框架已更新到4.8版本,4.8.0版本是没有jar包的,所以可以直接添加它的依赖。

1、添加依赖

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

2、具体的方法

RequestOptions options=new RequestOptions();
options.placeholder(R.drawable.loading); //添加占位图
options.error(R.drawable.error)
.centerCrop()//居中显示
.diskCacheStrategy(DiskCacheStrategy.NONE)//硬盘缓存
.skipMemoryCache(false)//是否采用内存缓存功能
.override(200,100)//显示图片的指定大小
.transform(new BlurTransformation(),new GrayscaleTransformation())//图片的模糊化和黑白化处理



RequestListener mListener=new RequestListener<Drawable>(){
        @Override
        public boolean onLoadFailed(GlideException e,Object model,Target<Drawable> target,boolean isFirstResource){
            
            return false;
        }

        @Override
        public boolean onResourceReady(Drawable resource,Object model,Targer<Drawable> target,DataSource dataSource,boolean isFirstResource){
            return false;
        }


Glide.with(mContext)
    .load("http://xxxx/cc.jpg")//图片路径
    .asBitmap() //图片的加载格式
    .preload()    //图片的预加载
    .apply(options)
    .listener(mListener)
    .into(imageview);

3、方法的详解

with():方法的参数可以Activity、Fragment等。将用于图片加载的生命周期,比如传入的是Activity,那么在Activity销毁时将对相关图片资源进行回收。

load():方法的参数可以是String、Uri、File、资源ID等。

preload():图片的预加载,提前将图片缓存下来,当需要图片的时候就去缓存中读取,不必再等待漫长的网络加载时间。

asBitmap():指定图片的加载格式为“静态图片”,如果此时加载了一张GIF图,那么Glide会显示这张GIF的第一帧(如果不指定asBitmap()方法,那么Glide会自动判断加载的图片是静态图片还是GIF格式)

asFile()asDrawable():强制指定文件格式的加载和Drawable格式的加载 。

listener():它实现了一个RequestListener实例。其中RequestListener中需要实现两个方法:onResourceReady()和onLoadFailed()方法。当图片加载完成时,回调onResourceReady();当图片加载失败时,回调onLoadFailed()方法,同时将GlideException参数传递进来,方便我们排查错误,用以定位出具体的原因。

into():传入的ImageView的位置。也可以传入其他的参数比如自定义target。

apply():这个参数详细介绍一下:

它需要传入一个RequestOption()参数,在Glide版本4.8.0之后,显示加载图片错误的方法、占位图的方法是无法直接调取的,这三个方法被封装到了RequestOptions()对象中

placeholder():占位图,当图片从网络或者缓存之前默认显示的图片,等真正的图片图片加载完成之后会将占位图替换掉。

error():用于图片加载失败时显示

centerCrop():图片居中显示  与它还有另外两种对齐方式:fitCenter()、circleCrop()(对图片进行圆形化裁剪)

diskCacheCategory():硬盘缓存策略

参数:

  • DiskCacheStrategory.NONE  不缓存任何内容
  • DiskCacheStrategory.DATA   只缓存原始图片
  • DiskCacheStrategory.RESOURCE  只缓存转换过后的图片
  • DiskCacheStrategory.ALL  不仅缓存原始图片,也缓存转换过的图片
  • DiskCacheStrategory.AUTOMIC  让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)

这些就是Glide 4.x版本需要注意的地方。随着版本的升级,还是要不断更新它的用法的。