WindowManager设置透明,点击事件传递下去
时间: 2023-08-23 20:04:58 浏览: 54
可以通过设置WindowManager.LayoutParams中的flags属性来实现窗口透明,同时要注意设置窗口的背景为透明色。点击事件的传递可以通过设置WindowManager.LayoutParams中的flags属性中的FLAG_NOT_TOUCH_MODAL和FLAG_NOT_FOCUSABLE来实现,前者使得点击事件可以传递到下面的窗口,后者使得窗口不会获得焦点。代码示例如下:
```
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION;
layoutParams.format = PixelFormat.TRANSPARENT;
layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
View view = LayoutInflater.from(context).inflate(R.layout.layout_transparent_window, null);
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.addView(view, layoutParams);
```
其中,R.layout.layout_transparent_window为布局文件,可以在其中设置背景为透明色。