当前activity透明度的获取与修改

 1 WindowManager.LayoutParams lp = getWindow().getAttributes();//layoutparams是静态类不能通过new来完成.

2 lp.alpha = bgAlpha; //0.0-1.0

3 getWindow().setAttributes(lp);  

下面通过一个例子来看该方法的使用:


 

android中popupwindow弹出后,屏幕背景变成半透明

Android中popupwindow弹出后,屏幕背景变成半透明这个效果很普通。实现的方法也很多。我使用的可能是最简单的一种,就是设置一下getWindows的透明度。不多说上代码

  1. /** 
  2.      * 设置添加屏幕的背景透明度 
  3.      * @param bgAlpha 
  4.      */  
  5.     public void backgroundAlpha(float bgAlpha)  
  6.     {  
  7.         WindowManager.LayoutParams lp = getWindow().getAttributes();  
  8.             lp.alpha = bgAlpha; //0.0-1.0  
  9.                 getWindow().setAttributes(lp);  
  10.     }  

之所以设置成方法,是因为当popwindow关闭的时候我们还要将这个透明度改回来。

  1.        popWin = new PopupWindow(popAddNoteType, mScreenWidth *8 /10, ViewGroup.LayoutParams.WRAP_CONTENT);  
  2. //在PopupWindow里面就加上下面代码,让键盘弹出时,不会挡住pop窗口。  
  3. popWin.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);           
  4. popWin.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);  
  5. //点击空白处时,隐藏掉pop窗口  
  6. popWin.setFocusable(true);  
  7. popWin.setBackgroundDrawable(new BitmapDrawable());  
  8. backgroundAlpha(1f);  
  9.   
  10.       //添加pop窗口关闭事件  
  11.       popWin.setOnDismissListener(new poponDismissListener());  


这里可能有人就要问了,当我点击屏幕空白处时,pop窗口是没了,可是背景还是半透明的,这不行啊。这里我们就用到一个事件

  1. /** 
  2.      * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来 
  3.      * @author cg 
  4.      * 
  5.      */  
  6.     class poponDismissListener implements PopupWindow.OnDismissListener{  
  7.   
  8.         @Override  
  9.         public void onDismiss() {  
  10.             // TODO Auto-generated method stub  
  11.             //Log.v("List_noteTypeActivity:", "我是关闭事件");  
  12.             backgroundAlpha(1f);  
  13.         }  
  14.           
  15.     }  

上面

  1. popWin.setOnDismissListener(new poponDismissListener());  

的代码就是调用这个事件

posted @ 2017-03-28 16:05  黑夜不再来  阅读(1030)  评论(0编辑  收藏  举报