实现一个简单popupWindow的简单封装类
public class PopupUtils { private PopupWindow popupWindow; private Activity activity; public PopupUtils(Activity activity, View contentView) { this.activity = activity; popupWindow = new PopupWindow(activity); popupWindow.setContentView(contentView); popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); popupWindow.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); popupWindow.setBackgroundDrawable(new BitmapDrawable()); } public void show(View parent) { popOutShadow(popupWindow, activity); popupWindow.showAtLocation(parent, Gravity.CENTER, 0, 0);//相对于父窗口 } public void dismiss() { if (popupWindow.isShowing()) { popupWindow.dismiss(); } } public void popOutShadow(PopupWindow popupWindow, final Activity activity) { WindowManager.LayoutParams lp = activity.getWindow().getAttributes(); lp.alpha = 0.7f; activity.getWindow().setAttributes(lp); popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { WindowManager.LayoutParams lp = activity.getWindow().getAttributes(); lp.alpha = 1f; activity.getWindow().setAttributes(lp); } }); } }