当需求我们的activity始终在别的应用的最前端的时候,可以向WindowManager 添加需要的view,oncreate中addview,在ondestory removeview,就能实现悬浮activity
wm = (WindowManager) getApplicationContext().getSystemService(
Context.WINDOW_SERVICE);
params = new WindowManager.LayoutParams();
params.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
params.width = -1;
params.height = -1;
wm.addView(view, params);`
另statusbar不能下拉:
WindowManager manager = ((WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE));
WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|
// this is to enable the notification to recieve touch events
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
// Draws over status bar
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
localLayoutParams.height = (int) (50 * getResources()
.getDisplayMetrics().scaledDensity);
localLayoutParams.format = PixelFormat.TRANSPARENT;
ViewGroup view = new ViewGroup(this);
manager.addView(view, localLayoutParams);
本文介绍了如何在Android中实现一个始终显示在其他应用上方的悬浮Activity,通过在onCreate中添加View并在onDestroy时移除,达到悬浮效果。同时提及了如何禁止状态栏下拉操作。

3725

被折叠的 条评论
为什么被折叠?



