在做项目时有时会遇到当弹出一个PopupWindow时,需要把除PopupWindow以外的位置变透明,下面这个方法就可以有效的实现
下面是代码实例:
public void setWindowAlpha(float p){
/**
* p的范围在 0.0-1.0之间即可
*/
WindowManager.LayoutParams params = getWindow().getAttributes();
params.alpha = (p) ;
//加上下面这句话之后就不会出现频闪的问题
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(params);
}
这样就可以把屏幕变暗了 如果当PopupWindow恢复到正常时 可以把上面的代码抽成一个方法,随时调用方法 传入一个参数就可以了。。