WindowManager创建悬浮窗,比如音量控制的视图弹窗,一些悬浮按钮,悬浮菜单等
WindowManager mManager = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);//WindowManager管理器
RelativeLayout mBottomView = (RelativeLayout) LayoutInflater.from(
MainActivity.this).inflate(R.layout.window_bottom, null);//布局资源
WindowManager.LayoutParams mParamsBottom = new WindowManager.LayoutParams();//
mParamsBottom.type = LayoutParams.TYPE_PHONE;//它置于所有应用程序之上,状态栏之下
mParamsBottom.format = PixelFormat.RGBA_8888;
mParamsBottom.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE
| LayoutParams.FLAG_NOT_TOUCHABLE;
mParamsBottom.gravity = Gravity.LEFT | Gravity.TOP;
mParamsBottom.x = 0;//显示的位置
mParamsBottom.y = 200
mParamsBottom.width = LayoutParams.MATCH_PARENT;
mParamsBottom.height = LayoutParams.WRAP_CONTENT;
mManager.addView(mBottomView, mParamsBottom);
使用悬浮窗需要如下权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
悬浮窗可以根据不同的flag来覆盖
flag相同时,后弹出的覆盖前弹出
找优先级最高的flag