//Glide一个非常优秀的图片加载库、下面是我对glide的简单封装 下载地址:http://download.csdn.net/detail/gl_mine_csdn/9769644 点击打开链接 public class GlideUtils { private final Glide mGlide; public GlideUtils(Context context) { //获取一个单例模式的Glide mGlide = Glide.get(context.getApplicationContext()); } public <T> DrawableTypeRequest<T> loadImgage(Context context, T source, ImageView imageView) { loadImgage(context, source, imageView, R.mipmap.ic_launcher); return null; } public <T> DrawableTypeRequest<T> loadImgage(Context context, T source, final ImageView imageView, int resId) { final T sourceTag = source; if (source instanceof String) { String target = source.toString(); if (!target.toLowerCase().startsWith("http://") && !target.toLowerCase().startsWith("https://")) { source = (T) target; } } //添加默认图片 if (resId == 0) { resId = R.mipmap.ic_launcher; } //防止页面关闭,图片依然加载 if (context != null) { mGlide.with(context)//初始化 .load(source)//加载资源 .diskCacheStrategy(DiskCacheStrategy.SOURCE)//缓存的类型 .placeholder(resId)//默认图片 .error(resId)//加载错误图片 .into(new SimpleTarget<GlideDrawable>() { //资源准备 @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { Object tag = imageView.getTag(0); //解决一部加载图片错乱问题 if (tag == null || sourceTag.equals(tag)) { imageView.setImageDrawable(resource); } } @Override public void onLoadFailed(Exception e, Drawable errorDrawable) { super.onLoadFailed(e, errorDrawable); //错误加载错误的图片 imageView.setImageDrawable(errorDrawable); } }); } return null; } public void clearMemory() { //清空所有的缓存 mGlide.clearMemory(); } public interface IGlideManager { //T 加载的数据类型 加载图片 <T> DrawableTypeRequest<T> loadImgage(Context context, T source, ImageView imageView); //res 默认加载的图片 <T> DrawableTypeRequest<T> loadImgage(Context context, T source, ImageView imageView, int resId); //清除缓存 void clearMemory(); } }