/**
* Project name:江云一代一路
* <p>
* 类说明:
* <p>
* 2017/10/27 0027.
* <p>
* by:suyan
*/
public class IosPopupWindow extends PopupWindow{
private Context mContext;
private Activity mActivity;
public IosPopupWindow(Context context, Activity activity) {
super(context);
mContext = context;
mActivity = activity;
init(context);
}
private void init(Context context) {
setPopupWindow();
}
//设置popupwindow
@SuppressLint("InlinedApi")
private void setPopupWindow() {
this.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);// 设置弹出窗口的宽
this.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);// 设置弹出窗口的高
this.setFocusable(true);// 设置弹出窗口点击外部消失
this.setAnimationStyle(R.style.pop_style_anim);// 设置动画
//设置背景,这个没什么效果,不添加会报错
this.setBackgroundDrawable(new BitmapDrawable());
// this.setBackgroundDrawable(new ColorDrawable(0x55000000));// 设置背景透明
this.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams lp = mActivity.getWindow().getAttributes();
lp.alpha = 1f;
mActivity.getWindow().setAttributes(lp);
}
});
}
public void showPop(View content,View playview) {
float bgalpha=0.5f;
this.setContentView(content);
//当popupwindow弹出时背景变暗
WindowManager.LayoutParams lp = mActivity.getWindow().getAttributes();
lp.alpha = bgalpha;
if (bgalpha == 1) {
mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
} else {
mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
}
mActivity.getWindow().setAttributes(lp);
this.showAtLocation(playview, Gravity.BOTTOM, 0, 0);
}
}
网友评论