搜索
热搜: 活动 交友 discuz
查看: 4132|回复: 0
打印 上一主题 下一主题

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

[复制链接]

160

主题

165

帖子

814

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
814
跳转到指定楼层
楼主
发表于 2016-8-18 16:07:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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.        //添加pop窗口关闭事件
  10.        popWin.setOnDismissListener(new poponDismissListener());
复制代码
这里可能有人就要问了,当我点击屏幕空白处时,pop窗口是没了,可是背景还是半透明的,这不行啊。这里我们就用到一个事件


  1. /**
  2.          * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来
  3.          * @author cg
  4.          *
  5.          */
  6.         class poponDismissListener implements PopupWindow.OnDismissListener{

  7.                 @Override
  8.                 public void onDismiss() {
  9.                         // TODO Auto-generated method stub
  10.                         //Log.v("List_noteTypeActivity:", "我是关闭事件");
  11.                         backgroundAlpha(1f);
  12.                 }
  13.                
  14.         }
复制代码
上面的代码就是调用这个事件


  1. popWin.setOnDismissListener(new poponDismissListener());
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|安卓论坛  

GMT+8, 2024-5-16 06:16 , Processed in 0.062965 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Design S!|ƽ̶

快速回复 返回顶部 返回列表