Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程實現popupwindow彈出後屏幕背景變成半透明效果

Android編程實現popupwindow彈出後屏幕背景變成半透明效果

編輯:關於Android編程

本文實例講述了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved