1,首先 dependencies 中引入glide
//加载glide gif
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
2,assets中加入gif图片资源
3,代码中引用
/**
* 用grild加载图片
*/
public void loadImage(ImageView imageView){
// String url="http://**********************";// 网络gif资源
String url = "file:///android_asset/gifImage.gif";
Glide.with(this)
.asGif()
.load(url)
// .error(R.mipmap.img_default)//异常时候显示的图片
// .placeholder(R.mipmap.img_default)//加载成功前显示的图片
// .fallback(R.mipmap.img_default)//url为空的时候,显示的图片
// .skipMemoryCache(SKIP_MEMORY_CACHE)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView);
//
// Glide.with(this).
// load(R.drawable.gifImage)
// error(null).
// diskCacheStrategy(DiskCacheStrategy.SOURCE).
// into(image);
}
4,注意:要在主线程中调用加载gif,否则报错哦!
5,在glide占用大量缓存内存的时候怎么手动回收掉这个内存呢?
? ? ? ? Drawable drawable = null;
? ? ? ? Glide.with(this).load(drawable).into(image);
如果 url 为 null,Glide 会清空 View 的内容,或者显示 placeholder Drawable 或 fallback Drawable 的内容。或者
?Glide.with(this).clear(image);
复用view需注意:Glide 唯一的要求是,对于任何可复用的 View 或 Target ,如果它们在之前的位置上,用 Glide 进行过加载操作,那么在新的位置上要去执行一个新的加载操作,或调用 clear() API 停止 Glide 的工作。 ?
?
|