本文執行個體講述了Android編程實現popupwindow彈出後螢幕背景變成半透明效果的方法。分享給大家供大家參考,具體如下:
android中popupwindow彈出後,螢幕背景變成半透明這個效果很普通。實現的方法也很多。我使用的可能是最簡單的一種,就是設定一下getWindows的透明度。不多說上代碼
/*** 設定添加螢幕的背景透明度* @param bgAlpha*/public void backgroundAlpha(float bgAlpha){ WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = bgAlpha; //0.0-1.0 getWindow().setAttributes(lp);}
之所以設定成方法,是因為當popwindow關閉的時候我們還要將這個透明度改回來。
popWin = new PopupWindow(popAddNoteType, mScreenWidth *8 /10, ViewGroup.LayoutParams.WRAP_CONTENT);//在PopupWindow裡面就加上下面代碼,讓鍵盤彈出時,不會擋住pop視窗。popWin.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);popWin.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);//點擊空白處時,隱藏掉pop視窗popWin.setFocusable(true);popWin.setBackgroundDrawable(new BitmapDrawable());backgroundAlpha(1f);//添加pop視窗關閉事件popWin.setOnDismissListener(new poponDismissListener());
這裡可能有人就要問了,當我點擊螢幕空白處時,pop視窗是沒了,可是背景還是半透明的,這不行啊。這裡我們就用到一個事件
/*** 添加新筆記時彈出的popWin關閉的事件,主要是為了將背景透明度改回來* @author cg**/class poponDismissListener implements PopupWindow.OnDismissListener{ @Override public void onDismiss() { // TODO Auto-generated method stub //Log.v("List_noteTypeActivity:", "我是關閉事件"); backgroundAlpha(1f); }}
上面
複製代碼 代碼如下:
popWin.setOnDismissListener(new poponDismissListener());
的代碼就是調用這個事件
希望本文所述對大家Android程式設計有所協助。