Android 模糊转换不';半径超过25时,不工作
我试图在使用Glide时模糊图像,因此我创建了一个自定义的BlurTransformation,如下所示Android 模糊转换不';半径超过25时,不工作,android,android-glide,Android,Android Glide,我试图在使用Glide时模糊图像,因此我创建了一个自定义的BlurTransformation,如下所示 public class BlurTransformation extends BitmapTransformation { private RenderScript rs; public BlurTransformation(Context context) { super(); rs = RenderScript.create(con
public class BlurTransformation extends BitmapTransformation {
private RenderScript rs;
public BlurTransformation(Context context) {
super();
rs = RenderScript.create(context);
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
Bitmap blurredBitmap = toTransform.copy(Bitmap.Config.ARGB_8888, true);
// Load up an instance of the specific script that we want to use.
ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
// Allocate memory for Renderscript to work with
Allocation input = Allocation.createFromBitmap(rs, blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL, Allocation.USAGE_SHARED);
Allocation output = Allocation.createTyped(rs, input.getType());
script.setInput(input);
// Set the blur radius
script.setRadius(25);
// Start the ScriptIntrinisicBlur
script.forEach(output);
// Copy the output to the blurred bitmap
output.copyTo(blurredBitmap);
return blurredBitmap;
}
@Override
public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update("blur transformation".getBytes());
}
}
它完成了任务,但唯一的问题是当我将script.setRadius(25)
置于25
上方时,它不工作
我知道这个
https://github.com/wasabeef/glide-transformations
,但我不想使用它。根据文档,最大模糊半径为25