popupWindow设置后完美解决返回键响应无效的方案以及popupWindow背景透明方案

// 点击其他地方消失
        viewPuwAddNew.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                if (puwAddNew != null && puwAddNew.isShowing()) {
                    puwAddNew.dismiss();
                    puwAddNew = null;
                }
                return false;
            }

        });

        // 点击其他地方和返回键消失,数值参数为透明色
        puwAddNew.setBackgroundDrawable(new PaintDrawable(0x00000000));
viewPuwAddNew是View实例过来的,puwAddNew是pupupWindow实例过来的结合这两个即可完美解决popupwindow打开时返回键无响应或者响应了点击其他地方无法消失。
PaintDrawable里面的参数是int类型的aRGB颜色值,为空背景则为主题色,0x00000000表面背景透明。
普通RGB转为0x格式的,建议的方法是在Chrome浏览器调试alpha值,颜色会变为rgba(0, 0, 0, 0.6)格式的颜色值复制之,
然后使用下面的转换工具,



会获得#99000000格式值,把#替换为0x,即0x99000000,酱紫PaintDrawable就可以接受不会报错了




原文地址:https://www.cnblogs.com/huangsheng/p/3347638.html