一、Glide使用
(1)在build.gradle中添加依赖
dependencies {
compile 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
}
(2)Glide方法
- 常用方式
Glide.with(this)
.load(imageUrl)
.into(imageView);
- placeholder:请求过程中显示。当请求成功完成时,占位符会被请求到的资源替换。
Glide.with(this)
.load(imageUrl)
.placeholder(R.mipmap.ic_launcher)
.into(imageView);
- fallback:请求为null时展示
Glide.with(this)
.load(imageUrl)
.fallback(R.drawable.ic_launcher_s)
.into(imageView);
- error:请求失败时展示,请求为null无fallback时展示;请求失败重新请求
Glide.with(this)
.load(imageUrl)
.error(R.drawable.ic_launcher_s)
.into(imageView);
Glide.with(this)
.load(imageUrl)
.error(Glide.with(this).load(imageUrl))
.into(imageView);
- override:设置图片尺寸
Glide.with(this)
.load(imageUrl)
.override(800, 800)
.into(imageView);
- thumbnail:主url加载完成后替换缩略图;如主url先加载完毕,则不显示缩略图
Glide.with(this)
.load(imageUrl)
.thumbnail(0.1f)//加载图片百分比缩略图
.into(imageView);
Glide.with(this)
.load(imageUrl)
.thumbnail(Glide.with(this).load(thumbnailUrl))//缩略图的url
.into(imageView);
Glide.with(this)
.load(imageUrl)
.thumbnail(Glide.with(this).load(imageUrl).override(800, 800))//同一个url,设置图片尺寸
.into(imageView);
- FitCenter:Image完全显示,尺寸不对时,周围会留白。
Glide.with(this)
.load(imageUrl)
.fitCenter()
.into(imageView);
- CircleCrop:Image圆形显示,以短边为直径,取中间位置。
Glide.with(this)
.load(imageUrl)
.circleCrop()
.into(imageView);
- CenterCrop:Image正方形显示,以短边为边长,取中间位置。
Glide.with(this)
.load(imageUrl)
.centerCrop()
.into(imageView);
- onlyRetrieveFromCache:仅从缓存加载图片,如果图片不再缓存,那么就会加载失败。
Glide.with(this)
.load(imageUrl)
.onlyRetrieveFromCache(true)
.into(imageView);
- skipMemoryCache:跳过内存缓存
Glide.with(this)
.load(imageUrl)
.skipMemoryCache(true)
.into(imageView);
- diskCacheStrategy:设置缓存策略
- DiskCacheStrategy.ALL:远程图片同时保存原始图片和修改后的图片;本地图片仅保存修改后的图片
- DiskCacheStrategy.AUTOMATIC:默认情况与ALL相同
- DiskCacheStrategy.DATA:仅保存未修改的原始图片
- DiskCacheStrategy.NONE:跳过磁盘缓存不缓存图片。
- DiskCacheStrategy.RESOURCE: 仅保存修改后的图片。
Glide.with(this)
.load(imageUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
- 显示gif静态图片
Glide.with(this)
.asBitmap()
.load(imageUrl)
.into(imageView);
- 显示gif动态图片
Glide.with(this)
.asGif()
.load(imageUrl)
.into(imageView);
- apply + RequestOptions使用
RequestOptions requestOptions = new RequestOptions()
.placeholder(R.drawable.ic_launcher)
.error(R.drawable.ic_launcher_s)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(this)
.load(imageUrl)
.apply(requestOptions)
.into(imageView);
- 清理磁盘缓存,需要在子线程中执行
Glide.get(this).clearDiskCache();
- 清理内存缓存,可以在UI主线程中进行
Glide.get(this).clearMemory();