毛玻璃实现效果如下方法:
@SuppressLint("NewApi") public Bitmap blur(Bitmap sentBitmap,Context context,int radius){
Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);
final RenderScript rs = RenderScript.create(context);
final Allocation input = Allocation.createFromBitmap(rs, sentBitmap, Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SCRIPT);
final Allocation output = Allocation.createTyped(rs, input.getType());
final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setRadius(radius /* e.g. 3.f */);
script.setInput(input);
script.forEach(output);
output.copyTo(bitmap);
return bitmap;
}
其中参数:radius表示毛玻璃的程度。
该方法将传入的一个bitmap经过转化返回了一个毛玻璃效果的bitmap,这样更加方便我们直接通过setImageBitmap再次设置给图片控件。