在弹出popupwindow后设置背景变暗,使用lp.alpha在华为MT7上面会导致屏幕闪烁

幻翼之心 2016-12-13 03:59:03
代码如下:
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = bgAlpha; //0.0-1.0
getWindow().setAttributes(lp);

在三星6.0手机和小米5.0手机上都不会这样,求知道时怎么回事啊
...全文
641 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunRui_GoOn 2018-02-08
  • 打赏
  • 举报
回复
引用 8 楼 easman 的回复:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) 在setAttributes前加上上边这句 dismiss时加个clearFlags
这个确实是加上了阴影想过,但是当前的activity有了一个透明度的变化,会闪烁一下,请问这是怎么回事?
  • 打赏
  • 举报
回复
按照8楼的方法果然有效
easman 2017-04-05
  • 打赏
  • 举报
回复
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) 在setAttributes前加上上边这句 dismiss时加个clearFlags
幻翼之心 2017-02-15
  • 打赏
  • 举报
回复
我是在华为MT7上遇到的,没有找到好的解决办法。最后我是把popupwindow设置为全屏且背景为透明,需要显示的控件背景设置为白色,并设置为想要显示的样子,这样也实现了背景变暗的功能。
w236000 2017-01-20
  • 打赏
  • 举报
回复
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
幻翼之心 2016-12-13
  • 打赏
  • 举报
回复
楼上的兄弟: 是的,我也时这么写的,目前只在华为MT7上面发现不正常
碼农李泽斌 2016-12-13
  • 打赏
  • 举报
回复
引用 3 楼 androidfszl 的回复:
[quote=引用 1 楼 lizebin_bin 的回复:] 你加一个背景试试? window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
不行的,还是一闪一闪的[/quote] 啊,那我也不是很清楚了,会不会是没设置PopupWindow的大小?我目前还没碰到过一闪一闪的情况。我一般这样写: private void init() { mContentView = View.inflate(mContext, R.layout.view_save_success, null); mTvSecond = (TextView) mContentView.findViewById(R.id.SaveSuccess_tvSecond); this.setContentView(mContentView); this.setTouchable(false); this.setFocusable(true); this.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); this.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss() { Activity activity = (Activity) mContext; WindowManager.LayoutParams params = activity.getWindow().getAttributes(); params.alpha = 1f; activity.getWindow().setAttributes(params); } }); } public void show(Activity activity) { this.showAtLocation(activity.getWindow().getDecorView(), Gravity.CENTER, 0, 0); WindowManager.LayoutParams params = activity.getWindow().getAttributes(); params.alpha = 0.5f; activity.getWindow().setAttributes(params); }
幻翼之心 2016-12-13
  • 打赏
  • 举报
回复
引用 1 楼 lizebin_bin 的回复:
你加一个背景试试? window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
不行的,还是一闪一闪的
幻翼之心 2016-12-13
  • 打赏
  • 举报
回复
不行的,还是一闪一闪的
碼农李泽斌 2016-12-13
  • 打赏
  • 举报
回复
你加一个背景试试? window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧