@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) @Override
public Bitmap transform(@NonNull Bitmap source) {
Bitmap blurredBitmap =
Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(blurredBitmap);
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
paint.setAntiAlias(true);
canvas.drawBitmap(source, 0, 0, paint);
RenderScript renderScript = RenderScript.create(context);
Allocation input =
Allocation.createFromBitmap(renderScript, source, Allocation.MipmapControl.MIPMAP_FULL,
Allocation.USAGE_SCRIPT);
Allocation output = Allocation.createTyped(renderScript, input.getType());
ScriptIntrinsicBlur scriptIntrinsicBlur =
ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
scriptIntrinsicBlur.setInput(input);
scriptIntrinsicBlur.setRadius(blurRadius);
scriptIntrinsicBlur.forEach(output);
output.copyTo(blurredBitmap);
source.recycle();
scriptIntrinsicBlur.destroy();
return blurredBitmap;
}