我正在使用Glide库显示具有模糊变换的图像,但是显示时间太长。显示模糊图像大约需要6-8秒。 我要显示的图像已本地保存。
没有模糊的图像几乎立即加载。
这是我正在使用的代码:
Glide.with(getActivity())
.load(img)
.transition(DrawableTransitionOptions.withCrossFade())
.transform(new BlurTransformation(), new CenterCrop())
.placeholder(R.drawable.back)
.error(R.drawable.back)
.into(layout);
我还尝试过像以下那样将参数传递给BlurTransformation()
,但是没有任何作用。
new BlurTransformation(context)
new BlurTransformation(25)
new BlurTransformation(25, 5)
这是我在build.gradle
中与Glide相关的内容:
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'jp.wasabeef:glide-transformations:4.0.0'
我以前使用过Picasso库,并且可以很好地进行模糊变换,但是Glide花费的时间太长了。
答案 0 :(得分:2)
GLIDE 嘿, 如果您看到了滑行模糊转换代码的文档,
@Override
protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool,@NonNull Bitmap toTransform, int outWidth, int outHeight) {
int width = toTransform.getWidth();
int height = toTransform.getHeight();
int scaledWidth = width / sampling;
int scaledHeight = height / sampling;
Bitmap bitmap = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.scale(1 / (float) sampling, 1 / (float) sampling);
Paint paint = new Paint();
paint.setFlags(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(toTransform, 0, 0, paint);
bitmap = FastBlur.blur(bitmap, radius, true);
return bitmap;
}
它在位图上执行操作,如果您的图像尺寸较大,则将需要一些时间在位图上执行操作,-请使用较亮的图像-您可以自行执行模糊操作。 -您需要显示加载程序,直到未通过位图执行操作为止。
================================================ =======================