Android---悬浮框(PopupWindow)的弹出及屏幕变为半透明

先来说PopupWindow窗口的弹出,设计的重要类有,WindowManager(Android的窗口机制基类)和PopupWindow(悬浮框)

代码如下:

	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.headline_reback://返回键
			Intent intent = getIntent();
			setResult(0);
			finish();
			overridePendingTransition(R.anim.left_in,R.anim.right_out);
			break;
		case R.id.qr_code://点击二维码弹出
			LayoutInflater inflater = this.getLayoutInflater();
			LayoutInflater inflater2 = this.getLayoutInflater();
			//得到界面视图
			View currean_View = inflater.inflate(R.layout.activity_about_self, null);
			//得到要弹出的界面视图
			View view = inflater2.inflate(R.layout.qrcode_share, null);
			WindowManager windowManager = getWindowManager();
			int width = windowManager.getDefaultDisplay().getWidth();
			int heigth = windowManager.getDefaultDisplay().getHeight();
			Log.i("width", width+"");
			Log.i("height", heigth+"");
			PopupWindow popupWindow = new PopupWindow(view,(int)(width*0.8),(int)(heigth*0.5));
			popupWindow.setFocusable(true);
			popupWindow.setOutsideTouchable(true);
			popupWindow.setBackgroundDrawable(new BitmapDrawable());
			//显示在屏幕中央
			popupWindow.showAtLocation(currean_View, Gravity.CENTER, 0, 40);
			//popupWindow弹出后屏幕半透明
			BackgroudAlpha((float)0.5);
			//弹出窗口关闭事件
			popupWindow.setOnDismissListener(new popupwindowdismisslistener());
			break;
		default:
			break;
		}
	}
	//设置屏幕背景透明度
	private void BackgroudAlpha(float alpha) {
		// TODO Auto-generated method stub
		WindowManager.LayoutParams l = this.getWindow().getAttributes();
		l.alpha = alpha;
		getWindow().setAttributes(l);
	}
	//点击其他部分popwindow消失时,屏幕恢复透明度
	class popupwindowdismisslistener implements PopupWindow.OnDismissListener{

		@Override
		public void onDismiss() {
			// TODO Auto-generated method stub
			BackgroudAlpha((float)1);
		}
		
	}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值