关于popupWindow

有时,我们需要一种弹窗式的页面,帮我们做一些简单的工作。我们直接从代码讲起吧!
private void showPopupWindow(View view) {
    view = this.getLayoutInflater().inflate(R.layout.activity_studentcard, null);  
            final PopupWindow pop = new PopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT,  
                    ViewGroup.LayoutParams.FILL_PARENT,true);   //这个当中,其中第2,3参数是指示popouwindow的大小   ,最后一个参数是表示可以获取焦点吗
        pop.setOutsideTouchable(true);   //这个设置的是在popWindow外的面是否可以接受焦点
          view.setOnClickListener(new View.OnClickListener() {       //   是指在popupWindow的其他地方点击所触发的事件
                @Override  
                public void onClick(View v) {  
                    // TODO Auto-generated method stub  
                    pop.dismiss();     //使得该popupwindow消失
                }  
            });  
           
           
          pop.setBackgroundDrawable(new BitmapDrawable()); //设置使得点击back可以退回去
          pop.showAsDropDown(view);
      }  
在这个当中,我们会发现popupWindow是透明的,那么,我们可以设置相应控件的背景颜色就可解决透明这个问题。
还有,有时我们你需要使得背景变为灰色,我们可以用一个函数,
public void backgroundAlpha(float bgAlpha)  
    {  
        WindowManager.LayoutParams lp = getWindow().getAttributes();  
        lp.alpha = bgAlpha;       //0.0-1.0  
        getWindow().setAttributes(lp);   //设置透明度
    }  

还有,当我们用上面方法返回时,我们也许发现我们的透明度依旧是灰的,那么我们需要增加一个监听器,在popuWindow消失时去触发它,pop.setOnDismissListener(new poponDismissListener());
然后在后面去实现它
class poponDismissListener implements PopupWindow.OnDismissListener{  
 
        @Override  
        public void onDismiss() {  
             
            backgroundAlpha(1f);    
        }  
           
    }  
上面就是,我所了解到的一些关于popupWindow的东西了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值