Android 显示一个在最上层的dialog
时间: 2024-03-23 21:41:26 浏览: 18
要在 Android 应用程序中显示一个在最上层的 Dialog,可以使用 WindowManager 类。具体步骤如下:
1. 创建一个 Dialog,并设置其样式和布局。
2. 创建一个 WindowManager.LayoutParams 对象,设置它的 flags 属性为 TYPE_APPLICATION_OVERLAY,这个属性可以让 Dialog 在所有应用程序窗口的顶部显示。
3. 使用 WindowManager 的 addView() 方法将 Dialog 添加到 WindowManager 中。
下面是示例代码:
```
Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog_layout);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.addView(dialog.getWindow().getDecorView(), params);
```
注意:需要在 AndroidManifest.xml 文件中添加 SYSTEM_ALERT_WINDOW 权限,否则会抛出 SecurityException 异常。