首页 > 技术文章 > WindowManager创建创建悬浮窗

gmm283029 2014-12-16 11:03 原文

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

 

推荐阅读