软件编程
位置:首页>> 软件编程>> Android编程>> Android悬浮窗屏蔽悬浮窗外部所有的点击事件的实例代码

Android悬浮窗屏蔽悬浮窗外部所有的点击事件的实例代码

作者:QuantumOffices  发布时间:2022-11-13 17:09:47 

标签:android,悬浮窗,屏蔽

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com