在Android中,WindowManager用于管理和控制應用程序的窗口。要在Android中使用WindowManager添加視圖,請按照以下步驟操作:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
TextView customView = new TextView(this);
customView.setText("Hello, this is a custom view!");
customView.setLayoutParams(new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT));
這里,我們設置了視圖的布局參數,包括類型(TYPE_APPLICATION_OVERLAY)和標志(FLAG_NOT_FOCUSABLE)。請注意,從Android 6.0(API級別23)開始,您需要在運行時請求SYSTEM_ALERT_WINDOW權限。
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
windowManager.addView(customView, customView.getLayoutParams());
現在,您的自定義視圖應該已經添加到應用程序窗口中。如果需要在視圖上添加事件監聽器,請在自定義視圖類中實現相應的監聽器接口。
請注意,從Android 10(API級別29)開始,對于非系統應用使用SYSTEM_ALERT_WINDOW權限的方式有所變化。您需要在應用程序的AndroidManifest.xml
文件中聲明SYSTEM_ALERT_WINDOW
權限,并在運行時向用戶請求權限。此外,您還需要在應用程序的res/xml
目錄下創建一個名為window_overlay.xml
的文件,其中包含自定義視圖的布局信息。然后,您需要在代碼中使用WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
類型的參數,并設置相應的布局文件路徑。