glide的简单封装

//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();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值