彈出疊加

為了將檢視放在每個應用程式的頂部,你必須將檢視分配給相應的視窗管理器。為此,你需要系統警報許可權,可以通過將以下行新增到清單檔案來請求:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

注意: 如果你的應用程式被銷燬,你的檢視將從視窗管理器中刪除。因此,最好建立檢視並通過前臺服務將其分配給視窗管理器。

將檢視分配給 WindowManager

你可以按如下方式檢索視窗管理器例項:

WindowManager mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);

要定義檢視的位置,你必須建立一些佈局引數,如下所示:

WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
        ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.MATCH_PARENT,
        WindowManager.LayoutParams.TYPE_PHONE,
        WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
        PixelFormat.TRANSLUCENT);
mLayoutParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;

現在,你可以將檢視與建立的佈局引數一起分配給視窗管理器例項,如下所示:

mWindowManager.addView(yourView, mLayoutParams);

瞧! 你的檢視已成功放在所有其他應用程式之上。

注意: 你的檢視不會放在鍵盤上。