设置popWindow背景变暗

1 .//popWindow命名为window。

//首先给window设置一个背景颜色

  ColorDrawable cd = new ColorDrawable(0x000000);
  window.setBackgroundDrawable(cd);
  // 产生背景变暗效果,设置透明度
  WindowManager.LayoutParams lp = getWindow().getAttributes();
  lp.alpha = 0.4f;

//之前不写这一句也是可以实现的,这次突然没效果了。网搜之后加上了这一句就好了。据说是因为popUpWindow没有getWindow()方法。
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  getWindow().setAttributes(lp);

//这样就设置好了变暗的效果

2.//然后再设置退出popupwindow时取消暗背景

window.setOnDismissListener(new OnDismissListener() {
   
   @Override
   public void onDismiss() {
    //在dismiss中恢复透明度
    WindowManager.LayoutParams lp=getWindow().getAttributes();
    lp.alpha=1f;

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    getWindow().setAttributes(lp);
   }
  });

 

//这样写效率不高,代码重复。优化之后:

private void darkenBackgroud(Float bgcolor) {
  WindowManager.LayoutParams lp = getWindow().getAttributes();
  lp.alpha = bgcolor;
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  getWindow().setAttributes(lp);
 }

调用时:

1.使变暗:darkenBackgroud(0.4f);

2.使恢复:darkenBackgroud(1f);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值