美文网首页
自定义PopupWindow

自定义PopupWindow

作者: __素颜__ | 来源:发表于2018-05-30 17:07 被阅读7次
/**
 * 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);
    }

}

相关文章

网友评论

      本文标题:自定义PopupWindow

      本文链接:https://www.haomeiwen.com/subject/kmkkjftx.html