Android悬浮窗屏蔽悬浮窗外部所有的点击事件的实例代码
作者:QuantumOffices 时间:2022-11-13 17:09:47
Android可以在所有应用上方添加View,就是给WindowManager添加一个View,在创建的View的时候可以给这个View设置LayoutParams(android.view.WindowManager.LayoutParams.LayoutParams())属性,默认是屏蔽View区域以外的所有点击事件,即在显示View的时候,屏幕的其它区域都不可点击,包括菜单和返回键等。
当给LayoutParams设置合适的flag后,其它区域就可以响应点击了。
示例代码:
/**
* 创建一个小悬浮窗。初始位置为屏幕的右部中间位置。
*
* @param context 必须为应用程序的Context.
*/
public static void createSmallWindow(Context context) {
WindowManager windowManager = getWindowManager(context);
int screenWidth = windowManager.getDefaultDisplay().getWidth();
int screenHeight = windowManager.getDefaultDisplay().getHeight();
if (smallWindow == null) {
smallWindow = new FloatWindowSmallView(context);
if (smallWindowParams == null) {
smallWindowParams = new LayoutParams();
smallWindowParams.type = LayoutParams.TYPE_PHONE;
smallWindowParams.format = PixelFormat.RGBA_8888;
smallWindowParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE;
smallWindowParams.gravity = Gravity.LEFT | Gravity.TOP;
smallWindowParams.width = FloatWindowSmallView.viewWidth;
smallWindowParams.height = FloatWindowSmallView.viewHeight;
smallWindowParams.x = screenWidth;
smallWindowParams.y = screenHeight / 2;
}
smallWindow.setParams(smallWindowParams);
windowManager.addView(smallWindow, smallWindowParams);
LogPrinter.i(TAG, "添加了小浮标View");
}
}
smallWindowParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE;
这行代码控制View以外的区域可以响应点击和触摸事件。如果没有设置flag,则View以外区域不能响应
以上所述是小编给大家介绍的Android悬浮窗屏蔽悬浮窗外部所有的点击事件实例代码网站的支持!
来源:http://blog.csdn.net/rnzuozuo/article/details/68484388
标签:android,悬浮窗,屏蔽
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
如何为Spring Cloud Gateway加上全局过滤器
2022-06-19 09:14:47
Android Studio提示inotify大小不足的解决办法
2022-01-06 23:48:07
详解Java中日志跟踪的简单实现
2023-03-28 00:18:48
详解jvm对象的创建和分配
2022-01-27 13:39:41
![](https://img.aspxhome.com/file/2023/0/75800_0s.png)
Flutter路由传递参数及解析实现
2023-06-22 11:48:45
![](https://img.aspxhome.com/file/2023/5/90155_0s.gif)
Spring框架构造注入type属性实例详解
2021-10-04 19:45:19
![](https://img.aspxhome.com/file/2023/6/105966_0s.png)
理解Java中的静态绑定和动态绑定
2022-05-28 04:20:06
java多线程模拟抢红包功能
2023-07-25 01:09:58
Java语言读取配置文件config.properties的方法讲解
2023-09-29 14:45:51
![](https://img.aspxhome.com/file/2023/9/86759_0s.png)
Java Swing实现JTable检测单元格数据变更事件的方法示例
2022-10-16 19:49:29
![](https://img.aspxhome.com/file/2023/2/110622_0s.jpg)
浅谈Spring框架中@Autowired和@Resource的区别
2023-11-26 11:31:21
![](https://img.aspxhome.com/file/2023/6/96096_0s.png)
JavaEE中struts2实现文件上传下载功能实例解析
2023-03-09 07:54:31
![](https://img.aspxhome.com/file/2023/7/88737_0s.png)
SpringBoot v2.2以上重复读取Request Body内容的解决方案
2022-06-27 11:00:16
python如何调用java类
2022-03-13 16:11:10
flutter ExpansionTile 层级菜单的实现
2023-06-15 16:04:01
![](https://img.aspxhome.com/file/2023/7/91007_0s.png)
JavaMail与Spring整合过程解析
2022-07-06 23:53:54
一个依赖搞定 Spring Boot 接口防盗刷的流程分析
2023-06-01 16:46:41
![](https://img.aspxhome.com/file/2023/4/93344_0s.png)
c# 使用handle.exe解决程序更新文件被占用的问题
2023-09-02 04:27:59
使用itextpdf解决PDF合并的问题
2023-09-21 04:47:16
Spring Boot Admin 进行项目监控管理的方法
2021-09-01 23:39:19
![](https://img.aspxhome.com/file/2023/1/67001_0s.png)