popupWindow半透明背景

最近在写关于弹出框需求,特此记录下popupwindow背景透明
网上有关于使用getWindow().getAttributes()设置背景透明,我个人倾向使用setBackgroundDrawable来设置背景头透明。直接上代码

dialog布局




    

        

            


            


            

            

            

        
    



一定要在最外层放置一个viewgroup的控件

初始化popup和获取布局

    //获取弹出布局
    inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog, null);
    //初始化控件
    mTvTitle = (TextView) inflate.findViewById(R.id.tv_title);
    mTvTitle.setOnClickListener(this);
    mTvCancel = (TextView) inflate.findViewById(R.id.tv_cancel);
    mTvCancel.setOnClickListener(this);
    mTvConfirm = (TextView) inflate.findViewById(R.id.tv_confirm);
    mTvConfirm.setOnClickListener(this);
    //设置显示的text
    mTvTitle.setText(centerTitle);
    mTvCancel.setText(leftStr);
    mTvConfirm.setText(rightStr);

   //初始化popup,并且设置加载的布局和弹出的宽和高
    popupWindow = new PopupWindow(inflate, ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT);

    //设置背景透明效果(主要)
    popupWindow.setBackgroundDrawable(new ColorDrawable(0x7f000000));
   

    //相对于父控件的位置
    popupWindow.showAtLocation(mCl, Gravity.CENTER, 0, 0);

重点就是弹出布局要有一个最外层的viewgroup控件包裹内容,其次popup的宽和高设置成match_parent,然后调用setBackgroundDrawable方法。
(第一次写博客,请各位见谅)

你可能感兴趣的:(android)