glide使用

glide在github地址:https://github.com/bumptech/glidegit

1.添加依赖(最好看官网,由于有时候添加依赖的会有轻微改动,版本也会一直更新)

repositories {
  mavenCentral()
  google()
}

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

2.简单使用

  String url = "http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";
        Glide.with(this).load(url).into(imageView);

调用Glide.with()方法用于建立一个加载图片的实例。with()方法能够接收Context、Activity或者Fragment类型的参数。也就是说咱们选择的范围很是广,无论是在Activity仍是Fragment中调用with()方法,均可以直接传this。那若是调用的地方既不在Activity中也不在Fragment中呢?也不要紧,咱们能够获取当前应用程序的ApplicationContext,传入到with()方法当中。注意with()方法中传入的实例会决定Glide加载图片的生命周期,若是传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会中止。若是传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会中止。github

接下来看一下load()方法,如下是加载不一样类型的资源时的代码示例

// 加载本地图片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

// 加载应用资源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

占位图

占位图是用来在未加载完成时预先展现的图片,另外还给出了加载错误时展现其余图片,以及如何禁止使用缓存等缓存

Glide.with(this)
.load(url)
.placeholder(R.drawable.loading) //占位图
.error(R.drawable.error) //加载错误时显示的图片
.diskCacheStrategy(DiskCacheStrategy.NONE) //禁止使用缓存
.into(imageView);

指定图片格式(静态图片仍是动态图片GIF)

glide能够自动识别要加载的资源时静态仍是动态图片,可是也能够硬性指定,并且动态能够指定成静态,静态指定成动态就会报错。maven

Glide.with(this)
     .load(url)
     .asGif()   //动态   //.asBitmap()静态
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

glide自动判断imageview大小,避免内存浪费,同时还能够指定图片的大小

使用Glide,咱们就彻底不用担忧图片内存浪费,甚至是内存溢出的问题。由于Glide历来都不会直接将图片的完整尺寸所有加载到内存中,而是用多少加载多少。Glide会自动判断ImageView的大小,而后只将这么大的图片像素加载到内存当中,帮助咱们节省内存开支。ide

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .override(100, 100)//指定图片的大小,无论你控件多大,图片就是这么大
     .into(imageView);
相关文章
相关标签/搜索