BasePopup从1.9.0-alpha版本开始支持模糊效果,在使用模糊之前,建议您配置Gradle和RenderScript以获得性能更佳的模糊效果,具体配置请查阅:配置

背景模糊

在BasePopup中背景模糊效果的使用非常简单,仅仅需要您调用 **setBlurBackgroundEnable(true)** 即可开启模糊。
一般情况下,默认的模糊效果应该可以满足绝大多数的需求,如果需要修改模糊配置,请查阅本页下的模糊配置

提示
如果您先设置了BlurOption,再设置setBlurBackgroundEnable(true),那么背景模糊的默认参数将会覆盖您的BlurOption因此请务必关注两者的调用顺序问题。

如果您希望修改背景模糊的默认参数,您可以调用setBlurBackgroundEnable(boolean, OnBlurOptionInitListener),传入BlurOptionInitListener,该Listener内返回的是背景模糊的参数配置,您可以在回调内进行修改。
- issue:#343

示例

  1. DemoPopup mDemoPopup = new DemoPopup(getContext());
  2. mDemoPopup.setBlurBackgroundEnable(true);

blur.gif

局部模糊

某种情况下,我们可能并不需要模糊整个背景,只需要针对某个View进行模糊,此时我们只需要调用 **setBlurView(view)** 即可实现局部模糊。

示例

DemoPopup mDemoPopup = new DemoPopup(getContext());
mDemoPopup.setBlurOption(new PopupBlurOption().setBlurView(findViewById(R.id.btn_test)));

blur_anchor.gif

模糊配置

在BasePopup中,模糊的一切配置均在PopupBlurOption中,通过PopupBlurOption,您可以自由的定制您所需要的模糊效果。
PopupBlurOption具体参数参考如下:

方法名 作用 默认值
setBlurView 指定模糊的View /
setBlurRadius 设置模糊的半径,取值范围为0~25,半径越大,模糊程度越高 10
setBlurPreScaleRatio 设置模糊预缩放的半径,取值范围为0~1,值越低,缩放程度越高,模糊速度越快,模糊效果越强 0.125
setBlurInDuration 设置模糊淡入时间(毫秒) 跟随背景动画时间,为0则取500毫秒
setBlurOutDuration 设置模糊淡出时间(毫秒) 跟随背景动画时间,为0则取500毫秒
setBlurAsync 设置使用子线程模糊 true
setFullScreen 设置当前Activity是否全屏,该方法一般用于全屏主题下模糊效果不理想的时候使用 自适应