开源项目Glide的使用
项目地址
https://github.com/bumptech/glide
了解Glide
谷歌推出维护的一个图片加载开源框架不仅能实现平滑的图片列表滚动效果,还支持远程图片的获取、大小调整和展示,并且可以加载Gif动态图Glide默认使用HttpUrlConnection进行网络请求,可配置,详细配置可以参考 https://github.com/bumptech/glide/wiki/Integration-Libraries
简单使用
Glide.with(MainActivity.this)
.load("http://xxxx")
.centerCrop()
.placeholder(R.mipmap.ic_launcher)
.into(imageView);
Glide的缓存基础
.skipMemoryCache(true) 跳过内存缓存,默认为false;当此时仍然会进行磁盘缓存.diskCacheStrategy( DiskCacheStrategy.NONE ) 跳过磁盘缓存如果既要跳过内存缓存又要跳过磁盘缓存,上面两个配合使用即可
磁盘缓存策略 - .diskCacheStrategy( DiskCacheStrategy.NONE )
DiskCacheStrategy.NONE 什么都不缓存DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像。DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即,降低分辨率后的(或者是转换后的)DiskCacheStrategy.ALL 缓存所有版本的图像(默认行为)
清除缓存
Glide.get(context).clearMemory(); 必须在UI线程中调用Glide.get(applicationContext).clearDiskCache(); 必须在后台线程中调用,建议同时clearMemory()
简单封装
/**
* Created by kushanmao on 2017/8/5.
*/
public class ImageLoader {
/**
* 加载显示图片 缓存改变后的图片DiskCacheStrategy.RESULT
*
* @param context
* @param baseUrl
* @param iv
*/
public static void showImageView(Context context, String baseUrl, ImageView iv) {
Glide.with(context)
.load(baseUrl)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.placeholder(R.drawable.hen)
.error(R.drawable.hen)
.into(iv);
}
/**
* 加载显示图片 缓存改变后的图片DiskCacheStrategy.RESULT
*
* @param context
* @param baseUrl
* @param iv
*/
public static void showCenterCropImageView(Context context, String baseUrl, ImageView iv) {
Glide.with(context)
.load(baseUrl)
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.placeholder(R.drawable.hen)
.error(R.drawable.hen)
.into(iv);
}
/**
* 加载显示圆形图片 缓存改变后的图片DiskCacheStrategy.RESULT
*
* @param context
* @param baseUrl
* @param iv
*/
public static void showCircleImageView(Context context, String baseUrl, ImageView iv) {
Glide.with(context)
.load(baseUrl)
.bitmapTransform(new CropCircleTransformation(context))
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.placeholder(R.drawable.hen)
.error(R.drawable.hen)
.into(iv);
}
}