提交 b2120d15 编写于 作者: J JessYan

Improve ImageConfigImpl

上级 b706ea83
......@@ -18,7 +18,9 @@ package com.jess.arms.http.imageloader.glide;
import android.widget.ImageView;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
import com.jess.arms.http.imageloader.BaseImageLoaderStrategy;
import com.jess.arms.http.imageloader.ImageConfig;
import com.jess.arms.http.imageloader.ImageLoader;
/**
* ================================================
......@@ -34,8 +36,17 @@ import com.jess.arms.http.imageloader.ImageConfig;
public class ImageConfigImpl extends ImageConfig {
private int cacheStrategy;//0对应DiskCacheStrategy.all,1对应DiskCacheStrategy.NONE,2对应DiskCacheStrategy.SOURCE,3对应DiskCacheStrategy.RESULT
private int fallback; //请求 url 为空,则使用此图片作为占位符
private int imageRadius;//图片每个圆角的大小
private int blurValue;//高斯模糊值, 值越大模糊效果越大
/**
* @see {@link Builder#transformation(BitmapTransformation)}
*/
@Deprecated
private BitmapTransformation transformation;//glide用它来改变图形的形状
private ImageView[] imageViews;
private boolean isCrossFade;//是否使用淡入淡出过渡动画
private boolean isCenterCrop;//是否将图片剪切为 CenterCrop
private boolean isCircle;//是否将图片剪切为圆形
private boolean isClearMemory;//清理内存缓存
private boolean isClearDiskCache;//清理本地缓存
......@@ -46,8 +57,13 @@ public class ImageConfigImpl extends ImageConfig {
this.errorPic = builder.errorPic;
this.fallback = builder.fallback;
this.cacheStrategy = builder.cacheStrategy;
this.imageRadius = builder.imageRadius;
this.blurValue = builder.blurValue;
this.transformation = builder.transformation;
this.imageViews = builder.imageViews;
this.isCrossFade = builder.isCrossFade;
this.isCenterCrop = builder.isCenterCrop;
this.isCircle = builder.isCircle;
this.isClearMemory = builder.isClearMemory;
this.isClearDiskCache = builder.isClearDiskCache;
}
......@@ -76,6 +92,34 @@ public class ImageConfigImpl extends ImageConfig {
return fallback;
}
public int getBlurValue() {
return blurValue;
}
public boolean isBlurImage() {
return blurValue > 0;
}
public int getImageRadius() {
return imageRadius;
}
public boolean isImageRadius() {
return imageRadius > 0;
}
public boolean isCrossFade() {
return isCrossFade;
}
public boolean isCenterCrop() {
return isCenterCrop;
}
public boolean isCircle() {
return isCircle;
}
public static Builder builder() {
return new Builder();
}
......@@ -88,8 +132,17 @@ public class ImageConfigImpl extends ImageConfig {
private int errorPic;
private int fallback; //请求 url 为空,则使用此图片作为占位符
private int cacheStrategy;//0对应DiskCacheStrategy.all,1对应DiskCacheStrategy.NONE,2对应DiskCacheStrategy.SOURCE,3对应DiskCacheStrategy.RESULT
private int imageRadius;//图片每个圆角的大小
private int blurValue;//高斯模糊值, 值越大模糊效果越大
/**
* @see {@link Builder#transformation(BitmapTransformation)}
*/
@Deprecated
private BitmapTransformation transformation;//glide用它来改变图形的形状
private ImageView[] imageViews;
private boolean isCrossFade;//是否使用淡入淡出过渡动画
private boolean isCenterCrop;//是否将图片剪切为 CenterCrop
private boolean isCircle;//是否将图片剪切为圆形
private boolean isClearMemory;//清理内存缓存
private boolean isClearDiskCache;//清理本地缓存
......@@ -126,6 +179,28 @@ public class ImageConfigImpl extends ImageConfig {
return this;
}
public Builder imageRadius(int imageRadius) {
this.imageRadius = imageRadius;
return this;
}
public Builder blurValue(int blurValue) { //blurValue 建议设置为 15
this.blurValue = blurValue;
return this;
}
/**
* 给图片添加 Glide 独有的 BitmapTransformation
* <p>
* 因为 BitmapTransformation 是 Glide 独有的类, 所以如果 BitmapTransformation 出现在 {@link ImageConfigImpl} 中
* 会使 {@link ImageLoader} 难以切换为其他图片加载框架, 在 {@link ImageConfigImpl} 中只能配置基础类型和 Android 包里的类
* 此 API 会在后面的版本中被删除, 请使用其他 API 替代
*
* @param transformation {@link BitmapTransformation}
* @deprecated 请使用 {@link #isCircle()}, {@link #isCenterCrop()}, {@link #isImageRadius()} 替代
* 如果有其他自定义 BitmapTransformation 的需求, 请自行扩展 {@link BaseImageLoaderStrategy}
*/
@Deprecated
public Builder transformation(BitmapTransformation transformation) {
this.transformation = transformation;
return this;
......@@ -136,6 +211,21 @@ public class ImageConfigImpl extends ImageConfig {
return this;
}
public Builder isCrossFade(boolean isCrossFade) {
this.isCrossFade = isCrossFade;
return this;
}
public Builder isCenterCrop(boolean isCenterCrop) {
this.isCenterCrop = isCenterCrop;
return this;
}
public Builder isCircle(boolean isCircle) {
this.isCircle = isCircle;
return this;
}
public Builder isClearMemory(boolean isClearMemory) {
this.isClearMemory = isClearMemory;
return this;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册