今天工作中需要磨砂玻璃效果,就从网上查找一番,最后查找适合自己的,我的apk版本是android4.4的,所以就下了一个方法
代码如下:
1.磨砂效果方法
@SuppressLint("InlinedApi")
public static Bitmap fastblur(Context context, Bitmap sentBitmap, 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;
}
2.添加到布局背景中
mLaybg.setBackground(new BitmapDrawable(fastblur(mLauncher,BitmapFactory.decodeResource(getResources(),draw_id),12)));
这里mLauncher 代表Context,
draw_id 代表图片id ,
12代表radius ,radius范围0-25之间