glide在github地址:https://github.com/bumptech/glidegit
repositories {
mavenCentral()
google()
}
dependencies {
implementation 'com.github.bumptech.glide:glide:4.7.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.0'
}
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
// 加载本地图片 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);
glide能够自动识别要加载的资源时静态仍是动态图片,可是也能够硬性指定,并且动态能够指定成静态,静态指定成动态就会报错。maven
Glide.with(this) .load(url) .asGif() //动态 //.asBitmap()静态 .placeholder(R.drawable.loading) .error(R.drawable.error) .diskCacheStrategy(DiskCacheStrategy.NONE) .into(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);