package com.xjf.repository.utils;
import android.app.Activity;
import android.net.Uri;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import java.io.File;
import java.util.concurrent.ExecutionException;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.FutureTarget;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.xjf.repository.R;
import com.xjf.repository.view.CircleImageView;
import com.xjf.repository.view.GlideCircleTransform;
/**
* -----------------------------------------------------------------
* User:xijiufu
* Email:xjfsml@163.com
* Version:1.0
* Time:2016/10/10--17:28
* Function:
* ModifyHistory:
* -----------------------------------------------------------------
*/
public class ImageLoaderUtils {
private ImageLoaderUtils() {
}
/**
* 加载本地的图片
*
* @param activity
* @param path
* @param imageView
*/
public static void displayLocalImage(Activity activity, String path, ImageView imageView) {
Glide.with(activity) //配置上下文
.load(Uri.fromFile(new File(path))) //设置图片路径(fix #8,文件名包含%符号 无法识别和显示)
.error(R.mipmap.default_image) //设置错误图片
.placeholder(R.mipmap.default_image) //设置占位图片
.diskCacheStrategy(DiskCacheStrategy.ALL)//缓存全尺寸
.into(imageView);
}
/**
* 加载本地与网络资源
*
* @param activity
* @param url
* @param imageView
*/
public static void displayUrlImage(Activity activity, String url, ImageView imageView) {
Glide.with(activity) //配置上下文
.load(url) //设置图片路径(fix #8,文件名包含%符号 无法识别和显示)
.error(R.mipmap.default_image) //设置错误图片
.placeholder(R.mipmap.default_image) //设置占位图片
.diskCacheStrategy(DiskCacheStrategy.RESULT) //缓存全尺寸 缓存变化后的
.into(imageView);
}
/**
* 获取图片缓存的路径
*
* @param activity
* @param url
* @return
*/
public static String getImgPathFromCache(Activity activity, String url) {
FutureTarget<File> future = Glide.with(activity).load(url).downloadOnly(100, 100);
try {
File cacheFile = future.get();
return cacheFile.getAbsolutePath();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 加载圆形图片
*
* @param activity
* @param url
* @param imageView
*/
public static void displayCircleUrlImage(Activity activity, String url, ImageView imageView) {
Glide.with(activity)
.load(url)
.transform(new GlideCircleTransform(activity))
.error(R.mipmap.default_image) //设置错误图片
.placeholder(R.mipmap.default_image)
.diskCacheStrategy(DiskCacheStrategy.RESULT) //缓存全尺寸 缓存变化后的
.into(imageView);
}
/**
* 设置CircleImageView 圆形头像
*
* @param activity
* @param url
* @param imageView
*/
public static void displayCircleImageUrl(Activity activity, String url, final CircleImageView imageView) {
Glide.with(activity)
.load(url)
.placeholder(R.mipmap.default_image)
.error(R.mipmap.default_image) //设置错误图片
.diskCacheStrategy(DiskCacheStrategy.RESULT) //缓存全尺寸 缓存变化后的
.into(new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
imageView.setImageDrawable(resource);
}
});
}
/**
* 设置资源文件
*
* @param activity
* @param resId
* @param imageView
*/
public static void displayResIdImageUrl(Activity activity, int resId, final CircleImageView imageView) {
Glide.with(activity)
.load(resId)
.placeholder(R.mipmap.default_image)
.error(R.mipmap.default_image) //设置错误图片
.diskCacheStrategy(DiskCacheStrategy.RESULT) //缓存全尺寸 缓存变化后的
.into(new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
imageView.setImageDrawable(resource);
}
});
}
}