package org.cuieney.videolife.common.image; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.net.Uri; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; import org.cuieney.videolife.R; import java.io.File; public class ImageLoader { public static final String ANDROID_RESOURCE = "android.resource://"; public static final String FOREWARD_SLASH = "/"; private static class ImageLoaderHolder { private static final ImageLoader INSTANCE = new ImageLoader(); } private ImageLoader() { } public static final ImageLoader getInstance() { return ImageLoaderHolder.INSTANCE; } //直接加载网络图片 private void displayImage(String url, Context context, ImageView imageView, int placeholderImage, int failureImage) { Glide.with(context) .load(url) .placeholder(placeholderImage) .error(failureImage) .override(200, 200) .centerCrop() .crossFade() .into(imageView); } public void displayImage(File url, Context context, ImageView imageView) { Glide.with(context) .load(url) .placeholder(R.drawable.bg) .error(R.drawable.bg) .override(80, 80) .centerCrop() .crossFade() .into(imageView); } public void displayLongImage(String url, Context context, ImageView imageView) { displayImage(url, context, imageView, R.drawable.bg, R.drawable.bg); } //加载SD卡图片 public void displayImage(Context context, File file, ImageView imageView) { Glide .with(context) .load(file) .centerCrop() .into(imageView); } //加载SD卡图片并设置大小 public void displayImage(Context context, File file, ImageView imageView, int width, int height) { Glide .with(context) .load(file) .override(width, height) .into(imageView); } //加载网络图片并设置大小 public void displayImage(Context context, String url, ImageView imageView, int width, int height) { Glide .with(context) .load(url) .centerCrop() .override(width, height) .crossFade() .into(imageView); } //加载drawable图片 public void displayImage(Context context, int resId, ImageView imageView) { Glide.with(context) .load(resourceIdToUri(context, resId)) .crossFade() .into(imageView); } //加载drawable图片显示为圆形图片 public void displayCricleImage(Context context, int resId, ImageView imageView) { Glide.with(context) .load(resourceIdToUri(context, resId)) .transform(new GlideCircleTransform(context)) .into(imageView); } //加载网络图片显示为圆形图片 public void displayCricleImage(Context context, String url, ImageView imageView) { Glide.with(context) .load(url) .override(80, 80) .transform(new GlideCircleTransform(context)) .into(imageView); } //加载SD卡图片显示为圆形图片 public void displayHeadImage(Context context, File file, ImageView imageView) { Glide.with(context) .load(file) //.centerCrop() .override(40, 40) .error(R.drawable.bg) .transform(new GlideCircleTransform(context)) .into(imageView); } //将资源ID转为Uri public Uri resourceIdToUri(Context context, int resourceId) { return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId); } public void displayBlurImage(File url, Context context, ImageView imageView) { Glide.with(context) .load(url) .placeholder(R.drawable.bg) .error(R.drawable.bg) .override(100, 100) .transform(new BlurTransformation(context)) .into(imageView); } public static void load(Activity activity, String url, ImageView iv) { //使用Glide加载圆形ImageView(如头像)时,不要使用占位图 if (!activity.isDestroyed()) { Glide.with(activity).load(url).crossFade().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(iv); } } public static void loadAll(Context context, String url, ImageView iv) { //不缓存,全部从网络加载 // SimpleTarget target2 = new SimpleTarget<Bitmap>(250, 250) { // @Override // public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) { // iv.setImageBitmap(bitmap); // } // }; Glide.with(context).load(url).crossFade().skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .into(iv); } public static void loadAll(Activity activity, String url, ImageView iv) { //不缓存,全部从网络加载 if (!activity.isDestroyed()) { Glide.with(activity).load(url).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).into(iv); } } }