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,悬浮窗,屏蔽
0
投稿

猜你喜欢

  • 如何为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
  • Flutter路由传递参数及解析实现

    2023-06-22 11:48:45
  • Spring框架构造注入type属性实例详解

    2021-10-04 19:45:19
  • 理解Java中的静态绑定和动态绑定

    2022-05-28 04:20:06
  • java多线程模拟抢红包功能

    2023-07-25 01:09:58
  • Java语言读取配置文件config.properties的方法讲解

    2023-09-29 14:45:51
  • Java Swing实现JTable检测单元格数据变更事件的方法示例

    2022-10-16 19:49:29
  • 浅谈Spring框架中@Autowired和@Resource的区别

    2023-11-26 11:31:21
  • JavaEE中struts2实现文件上传下载功能实例解析

    2023-03-09 07:54:31
  • 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
  • JavaMail与Spring整合过程解析

    2022-07-06 23:53:54
  • 一个依赖搞定 Spring Boot 接口防盗刷的流程分析

    2023-06-01 16:46:41
  • 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
  • asp之家 软件编程 m.aspxhome.com