华为手机PopupWindow弹出时背景不变暗问题

下面这段PopupWindow弹出时背景变暗效果的代码在网上随处可见:

private void setBackgroundAlpha(float bgAlpha){  
       WindowManager.LayoutParams layoutParams = MainActivity.this.getWindow().getAttributes();  
       layoutParams.alpha = bgAlpha; //0.0-1.0  
       MainActivity.this.getWindow().setAttributes(layoutParams);  
}  

我之前也是用这段代码实现这个效果,真机调试并没有什么问题。后来产品发布后有用户反馈背景透明,字体显示不清,陆续又出现几例这种情况,都是华为的手机。在网搜索了好久,都没找到解决办法,今天终于解决了。很简单,只要多加一句代码就行,如下:

  1. private void setBackgroundAlpha(float bgAlpha){  
  2.         WindowManager.LayoutParams layoutParams = MainActivity.this.getWindow().getAttributes();  
  3.         layoutParams.alpha = bgAlpha; //0.0-1.0  
  4.     MainActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//多加这一句,问题就解决了!这句的官方文档解释是:让窗口背景后面的任何东西变暗  
  5.         MainActivity.this.getWindow().setAttributes(layoutParams);  
  6.     }  
经验总结:这个问题困扰了我一两个月,今天终于解决了。其中得到的经验是:尽量使用google搜索,因为google确实比百度专业得多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值