个人使用Glide 4.0感觉比3.7在性能上有了提升,优化做的比较好,但是使用方法做了调整,下面我写了一个简单工具类,方便使用。
功能包括加载图片,圆形图片,圆角图片,指定圆角图片,模糊图片,灰度图片等等。目前我只加了这几个常用功能,其他请参考glide-transformations这个开源库。
在使用的时候要加入以下库:
compile 'com.github.bumptech.glide:glide:4.1.1'
compile 'jp.wasabeef:glide-transformations:3.0.1'
compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
/** * 说明: Glide工具类(glide 4.1+) * 作者:mint.zhang * 时间:2017/9/21 * 邮箱:zyminsunshine@126.com */ public class GlideUtils { /* *加载图片(默认) */ public static void loadImage(Context context, String url, ImageView imageView) { RequestOptions options = new RequestOptions() .centerCrop() .placeholder(R.color.white) //占位图 .error(R.color.white) //错误图 // .priority(Priority.HIGH) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(context).load(url).apply(options).into(imageView); } /* *加载圆形图片 */ public static void loadCircleImage(Context context, String url, ImageView imageView) { RequestOptions options = new RequestOptions() .centerCrop() .circleCrop()//设置圆形 .placeholder(R.color.white) .error(R.color.white) //.priority(Priority.HIGH) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(context).load(url).apply(options).into(imageView); } /* *加载圆角图片 */ public static void loadRoundCircleImage(Context context, String url, ImageView imageView) { RequestOptions options = new RequestOptions() .centerCrop() .circleCrop()//设置圆形 .placeholder(R.color.white) .error(R.color.white) //.priority(Priority.HIGH) .bitmapTransform(new RoundedCornersTransformation(45, 0, RoundedCornersTransformation.CornerType.ALL)) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(context).load(url).apply(options).into(imageView); } /* *加载圆角图片-指定任意部分圆角(图片上、下、左、右四个角度任意定义) */ public static void loadCustRoundCircleImage(Context context, String url, ImageView imageView, RoundedCornersTransformation.CornerType type) { RequestOptions options = new RequestOptions() .centerCrop() .placeholder(R.color.white) .error(R.color.white) //.priority(Priority.HIGH) .bitmapTransform(new RoundedCornersTransformation(45, 0, type)) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(context).load(url).apply(options).into(imageView); } /* *加载模糊图片(自定义透明度) */ public static void loadBlurImage(Context context, String url, ImageView imageView, int blur) { RequestOptions options = new RequestOptions() .centerCrop() .placeholder(R.color.white) .error(R.color.white) //.priority(Priority.HIGH) .bitmapTransform(new BlurTransformation(blur)) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(context).load(url).apply(options).into(imageView); } /* *加载灰度(黑白)图片(自定义透明度) */ public static void loadBlackImage(Context context, String url, ImageView imageView) { RequestOptions options = new RequestOptions() .centerCrop() .placeholder(R.color.white) .error(R.color.white) //.priority(Priority.HIGH) .bitmapTransform(new GrayscaleTransformation()) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(context).load(url).apply(options).into(imageView); } public static int dip2px(Context context, float dp) { float scale = context.getResources().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); } }
注:未经本人同意,不得转载。