PopupWindow背景变暗(背景半透明)(两种写法)(适配A

2020-11-24  本文已影响0人  Jo_wsj

1、第一种方案:

    // 设置屏幕透明度
    public void backgroundAlpha(float bgAlpha) {
        WindowManager.LayoutParams lp = act.getWindow().getAttributes();
        lp.alpha = bgAlpha; // 0.0~1.0
        act.getWindow().setAttributes(lp); //act 是上下文context
        //Android10 以后需要加上 否则无效
        act.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    }
    //设置背景颜色变暗
    private void addBackground() {
        backgroundAlpha(0.4f);
        mPopupWindow.setOnDismissListener(() -> {
            backgroundAlpha(1f);
        });
    }

2、第二种方案:

-第一步 布局文件

<RelativeLayout  
    android:layout_width="match_parent"             
    android:layout_height="match_parent">
                <!--省略代码 -->
        <!--黑色背景遮罩层,平时隐藏-->
        <!--背景bg_transparent 就是一张半透明的图片-->
        <View  
            android:id="@+id/view_transparent" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:visibility="gone" 
          android:background="@drawable/bg_transparent"/>
</RelativeLayout>

-第二步 activity里在弹出popupWindow的的时候让其显示,在关闭popupWindow的时候让其隐藏就可以了

private View transparent;
         transparent = findViewById(R.id.view_transparent);
         //在弹出popupWindow的的时候让其显示
         transparent.setVisibility(View.VISIBLE);
         //在关闭popupWindow的时候让其隐藏就可以了
         transparent.setVisibility(View.GONE);
上一篇 下一篇

猜你喜欢

热点阅读