popupwindow背景颜色透明度变黑
时间: 2023-09-12 17:07:57 浏览: 52
如果你在 PopupWindow 的背景中设置了半透明的颜色,可能会出现颜色透明度变黑的情况。这是因为 PopupWindow 默认的背景是黑色半透明的,会与你设置的半透明颜色混合导致变黑。
要解决这个问题,可以通过设置 PopupWindow 的背景来覆盖默认的黑色背景。具体做法是使用一个透明的 Drawable 来设置 PopupWindow 的背景,如下所示:
```
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
```
这样就可以避免颜色透明度变黑的问题了。
相关问题
popupwindow背景
要设置 PopupWindow 的背景,可以使用以下代码:
```
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
```
在这个例子中,我们将 PopupWindow 的背景设置为白色。你可以根据需要设置不同的颜色或者自定义背景图片。需要注意的是,如果不设置背景,PopupWindow 实例化后默认的背景是透明的。
PopupWindow显示时其他部分背景变暗
这个效果可以通过给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的大小。