package com.anthony.imageloader; import android.content.Context; import com.bumptech.glide.Glide; import com.bumptech.glide.Priority; import com.bumptech.glide.load.data.DataFetcher; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.model.stream.StreamModelLoader; import java.io.IOException; import java.io.InputStream; /** * Created by Anthony on 2016/3/3. * Class Note: * using {@link Glide} to load image */ public class GlideImageLoaderStrategy implements BaseImageLoaderStrategy { @Override public void loadImage(Context ctx, ImageLoader img) { //if currently not under wifi if (!ImageLoaderUtil.wifiFlag) { loadNormal(ctx, img); return; } int strategy = img.getWifiStrategy(); if (strategy == ImageLoaderUtil.LOAD_STRATEGY_ONLY_WIFI) { int netType = ImageLoaderUtil.getNetWorkType(ctx); //if wifi ,load pic if (netType == ImageLoaderUtil.NETWORKTYPE_WIFI) { loadNormal(ctx, img); } else { //if not wifi ,load cache loadCache(ctx, img); } } else { //如果不是在wifi下才加载图片 loadNormal(ctx, img); } } /** * load image with Glide */ private void loadNormal(Context ctx, ImageLoader img) { Glide.with(ctx).load(img.getUrl()).placeholder(img.getPlaceHolder()).into(img.getImgView()); } /** * load cache image with Glide */ private void loadCache(Context ctx, ImageLoader img) { Glide.with(ctx).using(new StreamModelLoader<String>() { @Override public DataFetcher<InputStream> getResourceFetcher(final String model, int i, int i1) { return new DataFetcher<InputStream>() { @Override public InputStream loadData(Priority priority) throws Exception { throw new IOException(); } @Override public void cleanup() { } @Override public String getId() { return model; } @Override public void cancel() { } }; } }).load(img.getUrl()).placeholder(img.getPlaceHolder()).diskCacheStrategy(DiskCacheStrategy.ALL).into(img.getImgView()); } }