开源项目Glide的使用
项目地址
了解Glide
简单使用
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);
}
}