PopupWindow显示时其他部分背景变暗
时间: 2024-01-04 12:40:19 浏览: 136
Popupwindow点击事件+popupwindow以外的背景变暗
5星 · 资源好评率100%
这个效果可以通过给PopupWindow设置一个半透明的背景来实现,可以使用以下代码实现:
```
// 在PopupWindow外部添加一个半透明的View
View backgroundView = new View(context);
backgroundView.setBackgroundColor(Color.parseColor("#80000000"));
backgroundView.setAlpha(0.5f);
backgroundView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
}
});
popupWindow.showAtLocation(parentView, Gravity.CENTER, 0, 0);
((ViewGroup) parentView.getRootView()).addView(backgroundView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
```
在这段代码中,我们创建了一个半透明的View,并且设置了点击事件,当用户点击这个View时,PopupWindow会被dismiss掉。然后我们调用PopupWindow的showAtLocation方法显示PopupWindow,在PopupWindow外部添加我们刚刚创建的半透明View。这样就实现了当PopupWindow显示时,其他部分背景变暗的效果。
需要注意的是,PopupWindow显示后半透明的背景View是覆盖在整个屏幕上的,如果PopupWindow的大小不是全屏的话,需要根据PopupWindow的大小来设置半透明的背景View的大小。
阅读全文