Muh*_*han 4 android deprecated popupwindow bitmapdrawable
在我的应用程序中使用自定义PopupWindow在哪里使用
popup.setBackgroundDrawable(new BitmapDrawable());
Run Code Online (Sandbox Code Playgroud)
方法.现在它已被弃用,如果没有这种方法,我就无法为弹出窗口提供背景信息.我从文章中读到它的替代方案
popup.setsetBackgroundDrawable(new BitmapDrawable(Context.Resources,Drawable);
Run Code Online (Sandbox Code Playgroud)
但在这里我没有使用任何drawable我的popUp.我的代码在下面给出了我自定义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());
}
Run Code Online (Sandbox Code Playgroud)
如果想要清理背景,请在评论中说明
//清除默认的半透明背景
您可以使用
popup.setBackgroundDrawable(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1005 次 |
| 最近记录: |