Android Glide加载本地gif动态图

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 的工作。
 

猜你喜欢

转载自blog.csdn.net/weixin_42602900/article/details/121637149