1:修改使用Glide,原设置了尺寸,出现页面显示缓慢的情况,现在禁止了设置图片的大小,使用RGB_565,减少内存占用

This commit is contained in:
2026-01-12 09:47:06 +08:00
parent 15ed708853
commit a034e5e954
2 changed files with 18 additions and 14 deletions

View File

@@ -16,6 +16,7 @@ import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.model.GlideUrl;
@@ -40,28 +41,29 @@ public class ImageLoader {
String urls = String.valueOf(new GlideUrl(url));
return new RequestOptions().signature(new ObjectKey(urls)).diskCacheStrategy(DiskCacheStrategy.ALL)
.skipMemoryCache(false)
.format(DecodeFormat.PREFER_RGB_565);
// 禁止尺寸影响缓存
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
// .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
}
public static void loadHead(Context context, ImageView view, String url) {
RequestOptions options = RequestOptions.circleCropTransform();
Glide.with(context).load(url).apply(createUrlOnlyOptions(url)).error(com.xscm.moduleutil.R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).thumbnail(0.1f).into(view);
Glide.with(context).load(url).apply(createUrlOnlyOptions(url)).error(com.xscm.moduleutil.R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).thumbnail(0.3f).into(view);
}
public static void loadHead(ImageView view, String url) {
RequestOptions options = RequestOptions.circleCropTransform();
Glide.with(view).load(url).apply(createUrlOnlyOptions(url)).error(R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).thumbnail(0.1f).into(view);
Glide.with(view).load(url).apply(createUrlOnlyOptions(url)).error(R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).thumbnail(0.3f).into(view);
}
public static void loadImage(ImageView view, String url) {
RequestOptions options = RequestOptions.circleCropTransform();
Glide.with(view).load(url).apply(createUrlOnlyOptions(url)).error(R.mipmap.default_image).placeholder(R.mipmap.default_image).thumbnail(0.1f).into(view);
Glide.with(view).load(url).apply(createUrlOnlyOptions(url)).error(R.mipmap.default_image).placeholder(R.mipmap.default_image).thumbnail(0.3f).into(view);
}
public static void loadImage(Context context, ImageView view, String url) {
Glide.with(context).load(url).apply(createUrlOnlyOptions(url)).error(R.mipmap.default_image).placeholder(R.mipmap.default_image)
.thumbnail(0.1f).into(view);
.thumbnail(0.3f).into(view);
}
/**
* 加载图片并灰度
@@ -72,7 +74,7 @@ public class ImageLoader {
*/
public static void loadImage(Context context,ImageView view, String url, Float placeholder) {
Glide.with(context).load(url).apply(RequestOptions.bitmapTransform(new GrayscaleTransformation(placeholder)))
.error(R.mipmap.default_image).placeholder(R.mipmap.default_image).diskCacheStrategy(DiskCacheStrategy.RESOURCE).thumbnail(0.1f).into(view);
.error(R.mipmap.default_image).placeholder(R.mipmap.default_image).diskCacheStrategy(DiskCacheStrategy.RESOURCE).thumbnail(0.3f).into(view);
}
// 可调节灰度程度的方法
public static void loadGrayscaleImage(Context context, String url, ImageView imageView, float saturation) {

View File

@@ -34,6 +34,7 @@ import com.bumptech.glide.Glide;
import com.bumptech.glide.integration.webp.decoder.WebpDrawable;
import com.bumptech.glide.integration.webp.decoder.WebpDrawableTransformation;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.Transformation;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.GlideException;
@@ -79,15 +80,16 @@ public class ImageUtils {
private static RequestOptions createUrlOnlyOptions(String url) {
return new RequestOptions().signature(new ObjectKey(url!=null ? url :"")).diskCacheStrategy(DiskCacheStrategy.ALL)
.skipMemoryCache(false)
.format(DecodeFormat.PREFER_RGB_565);
// 禁止尺寸影响缓存
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
// .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
}
/**
* 默认加载
*/
public static void loadImageView(String path, ImageView mImageView) {
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).thumbnail(0.1f).into(mImageView);
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).thumbnail(0.5f).into(mImageView);
}
/**
@@ -95,7 +97,7 @@ public class ImageUtils {
*/
public static void loadIcon(String path, ImageView mImageView) {
mImageView.setVisibility(TextUtils.isEmpty(path) ? GONE : View.VISIBLE);
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).thumbnail(0.1f).into(mImageView);
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).thumbnail(0.3f).into(mImageView);
}
/**
@@ -115,7 +117,7 @@ public class ImageUtils {
*/
public static void loadSample(String path, ImageView mImageView, int width, int height) {
RequestOptions options = new RequestOptions().override(width, height).diskCacheStrategy(DiskCacheStrategy.RESOURCE);
Glide.with(mImageView).load(path).apply(options).thumbnail(0.1f).into(mImageView);
Glide.with(mImageView).load(path).apply(options).thumbnail(0.5f).into(mImageView);
}
/**
@@ -208,7 +210,7 @@ public class ImageUtils {
}
}
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).error(errorRes).
placeholder(errorRes).centerCrop().diskCacheStrategy(DiskCacheStrategy.ALL).thumbnail(0.1f).into(mImageView);
placeholder(errorRes).centerCrop().diskCacheStrategy(DiskCacheStrategy.ALL).thumbnail(0.5f).into(mImageView);
}
@@ -225,7 +227,7 @@ public class ImageUtils {
}
}
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path))
.placeholder(R.mipmap.default_avatar).diskCacheStrategy(DiskCacheStrategy.RESOURCE).thumbnail(0.1f).into(mImageView);
.placeholder(R.mipmap.default_avatar).diskCacheStrategy(DiskCacheStrategy.RESOURCE).thumbnail(0.5f).into(mImageView);
}
public static void loadHeadCC(String path, ImageView mImageView) {
@@ -241,7 +243,7 @@ public class ImageUtils {
}
Glide.with(mImageView).asBitmap().load(path)
.apply(createUrlOnlyOptions(path))
.error(R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).centerCrop().thumbnail(0.1f).into(mImageView);
.error(R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).centerCrop().thumbnail(0.5f).into(mImageView);
}
public static void loadHead(String path, ImageView mImageView) {
@@ -256,7 +258,7 @@ public class ImageUtils {
}
}
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path))
.thumbnail(0.1f).into(mImageView);
.thumbnail(0.5f).into(mImageView);
}
public static void loadHeadCC(String path, ImageView mImageView, LinearLayout.LayoutParams params) {