在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
类型的参数,并设置相应的布局文件路径。