项目需要做一个半透明的高斯模糊,用来覆盖下面的布局,样式类似下面这种
image.png
所以第一时间想到了高斯模糊来做。
半透明的高斯模糊其实不难实现,只需要知道android.support.v8.renderscript这个包基本上就可以实现了。
使用之前可以先看看 https://www.jianshu.com/p/dd0a339e288e
public class BlurringView extends android.support.v7.widget.AppCompatImageView {
public BlurringView(Context context) {
this(context, null);
}
public BlurringView(Context context, AttributeSet attrs) {
super(context, attrs);
final Resources res = getResources();
//模糊半径 值越大,性能要求越高,模糊半径不能超过25
final int defaultBlurRadius = res.getInteger(R.integer.default_blur_radius);
//采集样式
final int defaultDownsampleFactor = res.getInteger(R.integer.default_downsample_factor);
//覆盖颜色
final int defaultOverlayColor = res.getColor(R.color.default_overlay_color);
//初始化RenderScript
initializeRenderScript(context);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PxBlurringView);
setBlurRadius(a.getInt(R.styleable.PxBlurringView_blurRadius, defaultBlurRadius));
setDownsampleFactor(a.getInt(R.styleable.PxBlurringView_downsampleFactor,
defaultDownsampleFactor));
setOverlayColor(a.getColor(R.styleable.PxBlurringView_overlayColor, defaultOverlayColor));
a.recycle();
}
public void setBlurredView(View blurredView) {
mBlurredView =