BasePopup从1.9.0-alpha版本开始支持模糊效果,在使用模糊之前,建议您配置Gradle和RenderScript以获得性能更佳的模糊效果,具体配置请查阅:配置
背景模糊
在BasePopup中背景模糊效果的使用非常简单,仅仅需要您调用 **setBlurBackgroundEnable(true)**
即可开启模糊。
一般情况下,默认的模糊效果应该可以满足绝大多数的需求,如果需要修改模糊配置,请查阅本页下的模糊配置
提示 如果您先设置了BlurOption,再设置setBlurBackgroundEnable(true),那么背景模糊的默认参数将会覆盖您的BlurOption,因此请务必关注两者的调用顺序问题。 如果您希望修改背景模糊的默认参数,您可以调用setBlurBackgroundEnable(boolean, OnBlurOptionInitListener),传入BlurOptionInitListener,该Listener内返回的是背景模糊的参数配置,您可以在回调内进行修改。 - issue:#343 |
---|
示例
DemoPopup mDemoPopup = new DemoPopup(getContext());
mDemoPopup.setBlurBackgroundEnable(true);
局部模糊
某种情况下,我们可能并不需要模糊整个背景,只需要针对某个View进行模糊,此时我们只需要调用 **setBlurView(view)**
即可实现局部模糊。
示例
DemoPopup mDemoPopup = new DemoPopup(getContext());
mDemoPopup.setBlurOption(new PopupBlurOption().setBlurView(findViewById(R.id.btn_test)));
模糊配置
在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是否全屏,该方法一般用于全屏主题下模糊效果不理想的时候使用 | 自适应 |