实现popupwindow弹出后背景办成半透明



if (mPopupWindow == null || !mPopupWindow.isShowing()) {
    LayoutInflater layoutInflater = LayoutInflater.from(ShopsListActivity.this);
    popupView = layoutInflater.inflate(R.layout.popup_shop, null);
    listView = (ListView) popupView.findViewById(R.id.lv_pop_shop);
    listView.setDivider(new ColorDrawable(getResources().getColor(R.color.grey)));
    listView.setDividerHeight(2);

    View headView = layoutInflater.inflate(R.layout.header_shop_pop, null);//设置头部,全部选项
    listView.addHeaderView(headView);
    TextView tvHead = (TextView) headView.findViewById(R.id.tv_list_market_name);
    if (MARKET_SIGN == sign) {//表示点击的是商场选项
        tvHead.setText(R.string.shops_market);
        tvHead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mPopupWindow.dismiss();
                tvMarket.setText(R.string.shops_market);
                tvFloor.setText(R.string.shops_floor);
                llFloor.setClickable(false);//此处全部楼层不能被点击
                market_id = "";
                floor = "";
                mDialog.show();
                addData(keyword,market_id, floor, true);
            }
        });
        MyAdapter adapter = new MyAdapter(MARKET_SIGN);
        listView.setAdapter(adapter);
    } else if (FLOOR_SIGN == sign) {//表示点击的是楼层选项
        tvHead.setText(R.string.shops_floor);
        tvHead.setOnClickListener(new View.OnClickListener() {//是全部楼层选项
            @Override
            public void onClick(View view) {
                mPopupWindow.dismiss();
                tvFloor.setText(R.string.shops_floor);
                floor = "";
                mDialog.show();
                addData(keyword,market_id, floor, true);
            }
        });

        MyAdapter adapter = new MyAdapter(FLOOR_SIGN);
        listView.setAdapter(adapter);
    }else if(STATUS_SIGN==sign){//表示点击的是状态选项

    }
    popupView.setFocusableInTouchMode(true);
    mPopupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    mPopupWindow.setTouchInterceptor(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_OUTSIDE)
                mPopupWindow.dismiss();
            return false;
        }
    });
    mPopupWindow.setFocusable(true); //点击空白处时,隐藏掉pop窗口
    mPopupWindow.setOutsideTouchable(true);
    mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
//此处是重点 设置背景半透明
backgroundAlpha(0.8f); mPopupWindow.showAsDropDown(view, Gravity.CENTER, 20); mPopupWindow.setOnDismissListener(new poponDismissListener());}
//设置添加屏幕的背景透明度
public void backgroundAlpha(float bgAlpha) {
    WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.alpha = bgAlpha; //0.0-1.0
    getWindow().setAttributes(lp);
}


//添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来
class poponDismissListener implements PopupWindow.OnDismissListener {
    @Override
    public void onDismiss() {
        backgroundAlpha(1f);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值