2017-10-11 64 views
0

我有一个由windowmanager提供动力的浮动窗口有问题。它停在屏幕边框,但我希望它通过。WindowManager浮动窗口通过屏幕边框

void startF(int x, int y) { 

    removePopup(); 

    DisplayMetrics displayMetrics = new DisplayMetrics(); 
    mainActivity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
    screenHeight = displayMetrics.heightPixels; 
    screenWidth = displayMetrics.widthPixels ; 

    gestureDetector = new GestureDetector(mainActivity, new SingleTap()); 

    windowManager = (WindowManager) mainActivity.getSystemService(Context.WINDOW_SERVICE); 

    linearLayout = new LinearLayout(mainActivity); 
    linearLayout.setBackgroundColor(mainActivity.getResources().getColor(R.color.red)); 

    final WindowManager.LayoutParams WMparams = new WindowManager.LayoutParams(100,100, 
      WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
      PixelFormat.TRANSPARENT); 

    //WMparams.gravity = Gravity.CENTER | Gravity.END; 

    WMparams.x = x; 
    WMparams.y = y; 

    windowManager.addView(linearLayout, WMparams); 

如在图像

enter image description here

回答

0

添加以下标记到窗口:FLAG_LAYOUT_NO_LIMITS

窗口标志:让窗口延长屏的外面。

+0

噢,非常感谢! – Kmopsuy

+0

+它不适用于TYPE_SYSTEM_ERROR,但我将其更改为TYPE_PHONE – Kmopsuy