Android 将视图置于绝对前沿(甚至是过度警报对话框)
我需要一个视图始终处于最前沿,即使是过于警惕的对话框。我想可能有两种方法来实现这一点:Android 将视图置于绝对前沿(甚至是过度警报对话框),android,android-alertdialog,Android,Android Alertdialog,我需要一个视图始终处于最前沿,即使是过于警惕的对话框。我想可能有两种方法来实现这一点: 以某种方式将警报对话框创建为现有视图的一部分,而不是其自身的活动 视图上的某种标志将其显示在所有内容的前面,包括警报对话框 这可能吗?如果是,如何操作?带有LayoutParams和标记为的WindowManager键入\u SYSTEM\u ERROR。在锁屏上也可以看到 WindowManager windowManager = (WindowManager)getSystemService(WINDOW
这可能吗?如果是,如何操作?带有LayoutParams和标记为
的WindowManager键入\u SYSTEM\u ERROR
。在锁屏上也可以看到
WindowManager windowManager = (WindowManager)getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 100; // position on screen (optional)
params.y = 100;
添加视图:
windowManager.addView(yourView, params);
编辑:
为避免覆盖锁屏:移除类型系统错误
标志并添加以下内容:
WindowManager.LayoutParams.TYPE_PHONE
要使其正常工作,您还需要向AndroidManifest.xml添加以下权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
WindowManager的布局参数和标记为
类型\系统\错误
。也可以在锁屏上显示。是否有一个版本的内容不足以覆盖锁屏?编辑答案以包括TYPE\u PHONE
标志,测试它。谢谢!现在做标记作为答案。我很快就会测试。电话选项需要其他许可吗?获取与权限相关的异常。不,应该是这样。异常是什么?
if (Settings.canDrawOverlays()) {
// you have permission
} else {
// send an intent with action "ACTION_MANAGE_OVERLAY_PERMISSION"
}