package com.rabtman.common.imageloader.glide; import android.graphics.Bitmap; import android.widget.ImageView; import com.bumptech.glide.load.Transformation; import com.rabtman.common.imageloader.ImageConfig; import com.rabtman.common.imageloader.ImageLoadListener; /** * Glide配置信息 */ public class GlideImageConfig extends ImageConfig { /** * 缓存策略: * 0对应DiskCacheStrategy.all * 1对应DiskCacheStrategy.NONE * 2对应DiskCacheStrategy.RESOURCE * 3对应DiskCacheStrategy.DATA * 4对应DiskCacheStrategy.AUTOMATIC */ private int cacheStrategy; private Transformation<Bitmap> transformation;//glide用它来改变图形的形状 private int fallback; private int[] size; private GlideImageConfig(Buidler builder) { this.url = builder.url; this.imageView = builder.imageView; this.placeholder = builder.placeholder; this.listener = builder.listener; this.errorPic = builder.errorPic; this.fallback = builder.fallback; this.cacheStrategy = builder.cacheStrategy; this.transformation = builder.transformation; this.size = builder.size; } public static Buidler builder() { return new Buidler(); } public int getCacheStrategy() { return cacheStrategy; } public int getFallback() { return fallback; } public Transformation<Bitmap> getTransformation() { return transformation; } public int[] getSize() { return size; } public static final class Buidler { private String url; private ImageView imageView; private int placeholder; private int errorPic; private int fallback; //请求 url 为空,则使用此图片作为占位符 private int cacheStrategy; private Transformation<Bitmap> transformation;//glide用它来改变图形的形状 private ImageLoadListener listener; //图片加载进度监听 private int[] size; private Buidler() { } public Buidler url(String url) { this.url = url; return this; } public Buidler placeholder(int placeholder) { this.placeholder = placeholder; return this; } public Buidler errorPic(int errorPic) { this.errorPic = errorPic; return this; } public Buidler fallback(int fallback) { this.fallback = fallback; return this; } public Buidler imageView(ImageView imageView) { this.imageView = imageView; return this; } public Buidler cacheStrategy(int cacheStrategy) { this.cacheStrategy = cacheStrategy; return this; } public Buidler transformation(Transformation<Bitmap> transformation) { this.transformation = transformation; return this; } public Buidler listener(ImageLoadListener listener) { this.listener = listener; return this; } public Buidler override(int width, int height) { this.size = new int[]{width, height}; return this; } public GlideImageConfig build() { return new GlideImageConfig(this); } } }