在做項目時有時會遇到當彈出一個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恢復到正常時 可以把上面的代碼抽成一個方法,隨時調用方法 傳入一個參數就可以了。。