android中popupwindow弹出后,屏幕背景变成半透明

android中popupwindow弹出后,屏幕背景变成半透明这个效果很普通。实现的方法也很多。我使用的可能是最简单的一种,就是设置一下getWindows的透明度。不多说上代码

/**
	 * 设置添加屏幕的背景透明度
	 * @param bgAlpha
	 */
	public void backgroundAlpha(float bgAlpha)
	{
		WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.alpha = bgAlpha; //0.0-1.0
                getWindow().setAttributes(lp);
	}
之所以设置成方法,是因为当popwindow关闭的时候我们还要将这个透明度改回来。

        popWin = new PopupWindow(popAddNoteType, mScreenWidth *8 /10, ViewGroup.LayoutParams.WRAP_CONTENT);
	//在PopupWindow里面就加上下面代码,让键盘弹出时,不会挡住pop窗口。
	popWin.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);    		
	popWin.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
	//点击空白处时,隐藏掉pop窗口
	popWin.setFocusable(true);
	popWin.setBackgroundDrawable(new BitmapDrawable());
	backgroundAlpha(1f);

       //添加pop窗口关闭事件
       popWin.setOnDismissListener(new poponDismissListener());

这里可能有人就要问了,当我点击屏幕空白处时,pop窗口是没了,可是背景还是半透明的,这不行啊。这里我们就用到一个事件

/**
	 * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来
	 * @author cg
	 *
	 */
	class poponDismissListener implements PopupWindow.OnDismissListener{

		@Override
		public void onDismiss() {
			// TODO Auto-generated method stub
			//Log.v("List_noteTypeActivity:", "我是关闭事件");
			backgroundAlpha(1f);
		}
		
	}
上面
popWin.setOnDismissListener(new poponDismissListener());
的代码就是调用这个事件

  • 15
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值