本文實例講述了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程式設計有幫助。
更多Android程式實作popupwindow彈出後螢幕背景變成半透明效果相關文章請關注PHP中文網!