Android12 弹窗外部高斯模糊效果实现

实现效果:

Android12 弹窗外部高斯模糊效果实现_第1张图片

方案:

Android12 新增有高斯模糊API:

Android 12 中,可以更轻松地将常用图形效果应用于View上,View中增加了setRenderEffect接口:

public void setRenderEffect(@Nullable RenderEffect renderEffect) {
        ...
}

实现:

所以我们使用这个api实现:

View decorView = getWindow().getDecorView();
decorView.setRenderEffect(RenderEffect.createBlurEffect(25F, 25F, Shader.TileMode.CLAMP));
Dialog dialog = new AlertDialog.Builder(this)
                    .setTitle("test dialog")
                    .setMessage("this is message!")
                    .setPositiveButton("关闭",null)
                    .create();
dialog.setOnDismissListener(dialog1 -> {
         decorView.setRenderEffect(null);
});
dialog.show();

如果是非Android12的话也能实现,需要有最外层的view,获取到当前界面所显示的内容高斯模糊后设置给外层view当背景,本文不做赘述。

完。

你可能感兴趣的:(android,dialog,高斯模糊,动效,酷炫)