package com.llf.basemodel.utils;
import android.content.Context;
import android.os.Looper;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.llf.basemodel.R;
import jp.wasabeef.glide.transformations.BlurTransformation;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
/**
* Created by llf on 2017/3/9.
* 加载图片工具类
*/
public class ImageLoaderUtils {
private static int placeholderId = R.drawable.ic_image_loading;
private static int errorId = R.drawable.ic_empty_picture;
/**
* 加载图片
* */
public static void loadingImg(Context context,ImageView iv, String picUrl){
Glide.with(context)
.load(picUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(placeholderId)
.error(errorId)
.dontAnimate()
.into(iv);
}
/**
* 加载gif图
*/
public static void loadGif(Context context,ImageView iv, String picUrl){
Glide.with(context)
.load(picUrl)
.asGif()
.into(iv);
}
public static void loadingImg(Context context,ImageView iv, String picUrl,int placeholderAvatar){
Glide.with(context)
.load(picUrl)
.placeholder(placeholderAvatar)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(errorId)
.dontAnimate()
.into(iv);
}
public static void loadingImgWithError(Context context,ImageView iv, String picUrl,int errorAvatar){
Glide.with(context)
.load(picUrl)
.error(errorAvatar)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate()
.into(iv);
}
public static void loadingImgWithBlur(Context context,ImageView iv,String picUrl){
Glide.with(context)
.load(picUrl)
.error(errorId)
.bitmapTransform(new BlurTransformation(context,Glide.get(context).getBitmapPool()))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate()
.into(iv);
}
public static void loadingImgWithBlur(Context context,ImageView iv,String picUrl,int error){
Glide.with(context)
.load(picUrl)
.error(error)
.bitmapTransform(new BlurTransformation(context,Glide.get(context).getBitmapPool()))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate()
.into(iv);
}
public static void displayRound(Context context,ImageView imageView, String url) {
Glide.with(context)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(errorId)
.centerCrop()
.bitmapTransform(new RoundedCornersTransformation(context,30,0, RoundedCornersTransformation.CornerType.ALL))
.dontAnimate()
.into(imageView);
}
public static void displayCircle(Context context,ImageView imageView, String url) {
Glide.with(context)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(errorId)
.centerCrop()
.bitmapTransform(new CropCircleTransformation(context))
.dontAnimate()
.into(imageView);
}
public static void clear(Context context){
clearImageDiskCache(context);
Glide.get(context).clearDiskCache();
}
/**
* 清除图片磁盘缓存
*/
private static void clearImageDiskCache(final Context context) {
try {
if (Looper.myLooper() == Looper.getMainLooper()) {
new Thread(new Runnable() {
@Override
public void run() {
Glide.get(context).clearDiskCache();
}
}).start();
} else {
Glide.get(context).clearDiskCache();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}