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 全屏,显示区在下方,其它区域半透明

如图:

Android PopupWindow 弹窗背景半透明,设置最大高度

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

另外设置最大高度,见demo

Demo 下载

上一篇:进程间通信--POSIX信号量


下一篇:iOS 设置视图半透明而子控件不透明