在我的应用程序中使用自定义PopupWindow使用
popup.setBackgroundDrawable(new BitmapDrawable());
方法。现在它已被弃用,如果没有这种方法,我就无法为弹出窗口提供背景信息。我从文章中读到它的替代方案是
popup.setsetBackgroundDrawable(new BitmapDrawable(Context.Resources,Drawable);
但是我的popUp并没有使用任何drawable。我的代码在下面给出了我自定义Popupwindow的位置,这里是为了解决这个问题。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
int[] location = new int[2];
Button button = (Button) findViewById(R.id.VBG_img_pin_x);
// Get the x, y location and store it in the location[] array
// location[0] = x, location[1] = y.
button.getLocationOnScreen(location);
// Initialize the Point with x, and y positions
p = new Point();
p.x = location[0];
p.y = location[1];
}
// The method that displays the popup.
private void showPopup(final Activity context, Point p) {
// Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics display = this.getResources().getDisplayMetrics();
int width = display.widthPixels;
int height = display.heightPixels;
// int width = display.getWidth(); // deprecated
// int height = display.getHeight(); // deprecated
int popupWidth = width / 2;
int popupHeight = height;
ChatUtils.getScreenHeight(getBaseContext());
// Inflate the popup_layout.xml
LinearLayout viewGroup = (LinearLayout) context
.findViewById(R.id.popup);
LayoutInflater layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup);
onSetAlpha(240, layout);
// layout.setAlpha((float) 0.95);
// Creating the PopupWindow
final PopupWindow popup = new PopupWindow(context);
popup.setTouchable(true);
popup.setFocusable(false);
popup.setOutsideTouchable(true);
popup.setContentView(layout);
popup.setWidth(popupWidth);
popup.setHeight(popupHeight);
popup.setFocusable(true);
// Some offset to align the popup a bit to the right, and a bit down,
// relative to button's position.
// Clear the default translucent background
popup.setBackgroundDrawable(new BitmapDrawable());
}
答案 0 :(得分:5)
if want to clean the background, as stated in your comment
//Clear the default translucent background
you can use
popup.setBackgroundDrawable(null);
答案 1 :(得分:2)
如果要为背景着色
,请使用此选项 popup.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.white)));
不推荐这样做。