Android 33 中如何使 AlertDialog 实现背景高斯模糊
时间: 2024-02-12 19:08:09 浏览: 191
在 Android 33 中,我们可以使用 AndroidX 中的`BlurDialogFragment`来实现`AlertDialog`的高斯模糊背景效果。实现步骤如下:
1. 首先,在项目的`build.gradle`文件中添加以下依赖:
```
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.github.Commit451:NativeBlurFragment:1.0.5'
```
2. 创建一个继承`BlurDialogFragment`的自定义`DialogFragment`,并在`onCreateDialog`方法中构建`AlertDialog`:
```
public class MyDialogFragment extends BlurDialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext());
builder.setTitle("Title")
.setMessage("Message")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something
}
});
return builder.create();
}
}
```
3. 在需要弹出对话框的地方,创建`MyDialogFragment`并调用`show`方法:
```
MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.show(getSupportFragmentManager(), "dialog");
```
这样就可以实现一个带有高斯模糊背景的`AlertDialog`了。如果需要自定义高斯模糊的程度、背景颜色等参数,可以在`MyDialogFragment`中重写`onCreateBlurConfig`方法,并返回一个`BlurConfig`对象来设置相关参数。
阅读全文