package com.happy.mvcframe.utils;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.widget.ImageView;
import androidx.annotation.DrawableRes;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.module.AppGlideModule;
import com.bumptech.glide.request.RequestOptions;
import com.happy.mvcframe.R;
import java.io.File;
import jp.wasabeef.glide.transformations.BitmapTransformation;
import jp.wasabeef.glide.transformations.BlurTransformation;
import jp.wasabeef.glide.transformations.CropTransformation;
import jp.wasabeef.glide.transformations.GrayscaleTransformation;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
import jp.wasabeef.glide.transformations.gpu.BrightnessFilterTransformation;
import jp.wasabeef.glide.transformations.gpu.PixelationFilterTransformation;
import jp.wasabeef.glide.transformations.gpu.SepiaFilterTransformation;
import jp.wasabeef.glide.transformations.gpu.SketchFilterTransformation;
/**
*
* @describe 使用图片加载
* 首先这里需要自己手动配置 缓存的错误图 和 占位图 请查看 getErrorImage() 和 getPlaceholder()方法
* 其次 如果需要配置缓存 直接查看 260 - 300行代码、
*
* @date 2020/5/8
* @author wjw
* @ownership 当前工具类使用所有权规定 不希望修改
*
* @note 使用到的依赖
* implementation 'com.github.bumptech.glide:glide:4.10.0'
* annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
* implementation 'jp.wasabeef:glide-transformations:4.1.0'//变换效果
* implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
*/
public class GlideUtil extends AppGlideModule {
/**
* @param obj 这里obj 只加载 url bitmap drawable
* @param imageView 需要加载的图片
* @describe 加载正常图片
* @note 这里并没有加载错图,在有错图的时候设置 error()
*/
public static void loadImage(Object obj, ImageView imageView) {
if (obj instanceof String) {
Glide.with(imageView.getContext()).load(obj).apply(initOptions())
.skipMemoryCache(isSkipMemoryCache()).placeholder(getPlaceholder())
.error(getErrorImage()).fallback(getErrorImage()).into(imageView);
}
if (obj instanceof Bitmap) {
Glide.with(imageView.getContext()).load(obj).apply(initOptions())
.skipMemoryCache(isSkipMemoryCache()).error(getErrorImage())
.fallback(getErrorImage()).placeholder(getPlaceholder()).into(imageView);
}
if (obj instanceof Drawable) {
Glide.with(imageView.getContext()).load(obj).apply(initOptions())
.skipMemoryCache(isSkipMemoryCache()).error(getErrorImage())
.fallback(getErrorImage()).placeholder(getPlaceholder()).into(imageView);
}
}
/**
* @param context 当前Activity的上下文对象
* @param obj
* @param imageView
* @describe 与没有context的方法相比 不易导致 内存泄漏问题,原因 activity销毁的时候 imageView 的上下文对象自然不存在
*/
public static void loadImage(Context context, Object obj, ImageView imageView) {
if (obj instanceof String) {
Glide.with(context).load(obj)
.apply(initOptions())
.error(getErrorImage())
.fallback(getErrorImage())
.placeholder(getPlaceholder())
.into(imageView);
}
if (obj instanceof Bitmap) {
Glide.with(context).load(obj).apply(initOptions())
Android非常全的“GlideUtil”,图片加载工具类(滤镜,缩略图,高斯模糊......)
最新推荐文章于 2024-04-06 09:44:03 发布