Popwindow 没有继承Viewgroup,因此最外层布局属性的宽高无效,如果布局设置wrap_content则以实际资源大小为准,例如:给布局定义背景图片,如果图片是.9格式要特别注意,设置了宽高后会默认加上没有被拉升的部分宽高。
Popwindow 显示方法有两种,即显示在某个view下和显示在窗体中的某个xy位置,如果设置了比重,Gravity.END|Gravity.TOP 此时从上到下,从右到左的偏移量为正。
public class Pop extends PopupWindow {
private View conentView;public Pop(final Activity context) {LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);conentView = inflater.inflate(R.layout.pop_task, null);int h = context.getWindowManager().getDefaultDisplay().getHeight();int w = context.getWindowManager().getDefaultDisplay().getWidth();// 设置SelectPicPopupWindow的Viewthis.setContentView(conentView);// 设置SelectPicPopupWindow弹出窗体的宽this.setWidth((int)context.getResources().getDimension(R.dimen.px_to_dp_232));// 设置SelectPicPopupWindow弹出窗体的高this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);// 设置SelectPicPopupWindow弹出窗体可点击this.setFocusable(true);this.setOutsideTouchable(true);// 刷新状态this.update();// 实例化一个ColorDrawable颜色为半透明ColorDrawable dw = new ColorDrawable(0000000000);// 点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作this.setBackgroundDrawable(dw);}