处理在Android中覆盖系统窗口的视图



我一直遇到一个问题,即用户按下并按住电源按钮并显示电源选项窗口,但其中一部分隐藏在RelativeLayout后面。目前我正在使用:

设置RelativeLayout
WindowManager windowManager = (WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE);
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(overlay_width, overlay_height, overlay_left, overlay_top,
                WindowManager.LayoutParams.TYPE_TOAST,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,PixelFormat.RGBA_8888 );
        params.gravity = Gravity.TOP | Gravity.CENTER;

我需要这个view在前面的一切,但我不希望它出现在前面的系统窗口,如,通知下拉栏和电源关闭选项窗口。

建议吗?

用TYPE_PHONE或TYPE_SYSTEM_OVERLAY代替type_toast WindowManager.LayoutParams.TYPE_TOAST,

我使用这个代码,它的工作:-

  wm = (WindowManager) 
    final WindowManager.LayoutParams parameters = new WindowManager.LayoutParams(
            (int)desired_width, (int)desired_height, LayoutParams.TYPE_PHONE,   // First one is width then is height
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    |WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
            PixelFormat.TRANSLUCENT);

检查是否再次更改了字体

最新更新