要实现的效果图:
方法一:showAsDropDown
整个窗体设置透明度方法
如果对屏幕像素与dp不太清楚者,查看https://my.oschina.net/yuerliang/blog/796468
像素转换成dp实现类
方法二:showAtLocation
private void showChoose() { LayoutInflater mLayoutInflater = (LayoutInflater) getActivity().getSystemService(LAYOUT_INFLATER_SERVICE); ViewGroup menuView = (ViewGroup) mLayoutInflater.inflate( R.layout.view_choose_photo_video, null, true); PopupWindow pw = new PopupWindow(menuView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true); pw.setOutsideTouchable(true); // 设置是否允许在外点击使其消失,到底有用没? pw.setFocusable(true); pw.setAnimationStyle(R.style.nornal_style); // 设置动画 // 计算x轴方向的偏移量,使得PopupWindow在Title的正下方显示,此处的单位是pixels backgroundAlpha(0.5f); FrameLayout frameLayout = findView(R.id.fragment_circle); //方法二 pw.showAtLocation(frameLayout, Gravity.CENTER,0,0); //添加pop窗口关闭事件监听 pw.setOnDismissListener(new poponDismissListener()); }