工作环境(蓝色粗体字为特别注意内容)
1,系统环境:Win7 Ultimate sp1、eclipse、AndroidStudio
我们知道,在Android中使用Dialog的时候,弹出的对话框背景是黑色半透明的,如图所示:
当然,这种效果是Dialog对话框自带的效果,在PopWindow中则没有这种效果,这样就显得有些突兀。那么有没有什么简单的方法,使得在PopWindow中也能够达到背景半透明的效果呢?答案是肯定的,下面,我们来看一下,如何达到这种效果。
/**
* 改变背景颜色
*/
private void darkenBackground(Float bgcolor){
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = bgcolor;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(lp);
}
然后再Popwindow show之前调用:
darkenBackground(0.5f);
最后设置Popwindow消失的时候把半透明蒙版去掉:
mPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
darkenBackground(1f);
}
});
这一就达到了我们的效果: