zoukankan      html  css  js  c++  java
  • Android PopupWindow 弹窗背景半透明,设置最大高度


    首先讲一个网上的方法:

    popupwindow弹出后,屏幕背景变成半透明这个效果很普通。实现的方法也很多。我使用的可能是最简单的一种,就是设置一下getWindows的透明度。

            /**
             * 设置添加屏幕的背景透明度  1,:全透明;0.5:半透明  0~1,取自己想到的透明度
             * @param bgAlpha
             */
            public void backgroundAlpha(float bgAlpha)
            {
                WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
                lp.alpha = bgAlpha; //0.0-1.0
                activity.getWindow().setAttributes(lp);
            }

    1. PopupWindow 弹出时设置:

     backgroundAlpha(0.5f);
    2.PopupWindow 消失时,变成全透明,这里可以监听PopupWindow 消失

    mPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
        @Override
        public void onDismiss() {
           backgroundAlpha(1f);
        }
    });

    完成,现在的问题是,后来发现,有个人手机,会闪屏,并且有的手机不能正常显示背景半透明;


    方法二:

     让Popupwindow 全屏,显示区在下方,其它区域半透明

    如图:


    注意:在点击 背景的地方做 一个View,如果被点击,popupwindow消失 ;

    另外设置最大高度,见demo

    Demo 下载



  • 相关阅读:
    队列的实现
    前端的数据结构
    有关es6的模块化
    jQuery---事件的执行顺序
    短网址生成和还原工具使用教程
    【01】HTML_day01_03-HTML常用标签
    JS中变量、作用域的本质,定义及使用方法
    JS 重载父页面
    搞懂Nginx一篇文章就够了
    重复的子字符串
  • 原文地址:https://www.cnblogs.com/sharecenter/p/5620986.html
Copyright © 2011-2022 走看看