在Android应用开发中,PopupWindow是很常见的,也是我们经常用到的,这里先来说说一下属性:

        popupWindow.showAsDropDown(view,view.getWidth(),view.getHeight()); //相对某个控件,有偏移popupWindow.setBackgroundDrawable(getResources().getDrawable(R.color.white)); //设置背景popupWindow.setContentView(view);//设置popupWindow显示的viewpopupWindow.setFocusable(true); //设置是否获取焦点popupWindow.setAnimationStyle(int animationStyle); //设置加载动画popupWindow.setTouchable(true); //设置触摸使能popupWindow.dismiss(); //关闭弹窗

接下来,我们就去如何创建并使用它

1. 先自定义一个view,并获取布局(这里我就不展示布局代码了)
View popupView =  getLayoutInflater().inflate(R.layout.gooddetail_selecte_detail,null);
2. 创建一个popupWindow对象
 popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT,1800,true);(弹窗布局,宽,高,true表示点击空白处关闭弹窗)popupWindow.showAsDropDown(view,view.getWidth(),view.getHeight()); //相对某个控件,有偏移popupWindow.setBackgroundDrawable(getResources().getDrawable(R.color.white)); //设置背景
3.设置遮罩层

遮罩层就是当弹出Popwindow时Activity背景变灰的一种效果,这里自定义一个方法,通过传一个背景灰度比例值来实现背景颜色改变,代码如下:

   private void setAlpha(float f) {WindowManager.LayoutParams lp =getWindow().getAttributes();lp.alpha = f;getWindow().setAttributes(lp);}

然后在初始化popwindow的时候调用,这里值为0-1.0,值越小就越不透明

 setAlpha(0.2f);

到这里疑问就来啦,既然打开弹窗时要显示遮罩,那么在关闭时要如何还原呢,下面就有说明:

  1. 点击空白处关闭弹窗
     //把背景还原popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {@Overridepublic void onDismiss() {setAlpha(1.0f);}});
  1. 点击右上角的关闭图标
case R.id.close_popupWindow:popupWindow.dismiss();setAlpha(1.0f); break;

这样就完成啦!

Android中PopupWindow遮罩层的设置相关推荐

  1. html遮罩实例,给原生html中添加水印遮罩层的实现示例

    效果图 代码 水印遮罩 .watermark_mask { position: fixed; top: 10px; } .hello { width: 500px; height: 2048px; m ...

  2. android alarmmanager进程,Android中使用AlarmManager需注意设置进程属性

    Android中使用AlarmManager需注意设置进程属性 在Android中,AlarmManager提供了不受休眠状态的系统定时功能,其一般使用方法如下. 1.创建一个BroadcastRec ...

  3. 卷积神经网络中各个卷积层的设置及输出大小计算的详细讲解

    我将从以下几个方面来进行解说: 1.卷积神经网络的结构 2.卷积神经网络的计算 3.以AlexNet为例进行详细讲解 4.常见的两个卷积层设置的问题 1.卷积神经网络的结构 卷积神经网络(CNN)由输 ...

  4. android中华为、小米手机设置头像裁剪失败问题

    近期写代码碰到华为.小米手机拍照.从相册获取图片设置头像失败的问题,在网上浏览一些相关博客后,终于解决了此问题,特在此记录,分享给大家,也算是自己的一个笔记了! 问题原因:裁剪时 return-dat ...

  5. android获取应用权限管理,如何在android中获取应用程序权限设置?

    我正在开发一个小应用程序,它只列出那些连接到互联网的应用程序.如何从Packageinfo类中读取 android清单文件以编程方式访问每个应用程序的权限设置? private void getWeb ...

  6. 关于Android中Button的Backgroud背景设置默认为蓝紫色,且无法修改的问题

    问题简述: 在修改Button的背景颜色时,始终无法修改颜色为设置的颜色,且颜色始终为默认的蓝紫色. <Buttonandroid:id="@+id/btn_1"androi ...

  7. 百度地图行政区划边界线获取,只要界线,遮罩层透明设置方法

    主要是设置它的透明度,让之前的白色遮罩隐藏上.

  8. android drawable 点击事件,Android中EditText的drawableRight属性设置点击事件

    这个方法是通用的,不仅仅适用于edittext,也适用于textview.autocompletetextview等控件. google官方api并没有给出一个直接的方法用来设置右边图片的点击事件,所 ...

  9. android 代码关闭叠加层,在Android中绘制叠加层(系统范围)

    小编典典 可以通过创建一个Service在当前视图中添加视图的方法来做到这一点WindowManager: public class OverlayService extends Service { ...

最新文章

  1. 随机生成图像 与 图像的转维(reshape)
  2. 作者:周园春(1975-),男,博士,中国科学院计算机网络信息中心研究员、博士生导师...
  3. 使shell用结构化命令
  4. lua——赢三张牌型处理相关算法(上)——牌值数据
  5. 收藏 | 这所985的机器学习、深度学习公开课,附PDF课件下载
  6. 10-2-文章分页展示
  7. 学习笔记-小甲鱼Python3学习第二十三、二十四讲:函数:这帮小兔崽子、汉诺塔...
  8. Google 地球专业版离线下载
  9. 一文带你玩转 DataStore
  10. 20172328的结对编程四则运算第二周-整体总结
  11. css clac计算属性
  12. NLP 论文领读 | 缺少有标注的数据集怎么训练文本检索模型?来看看 LaPraDoR怎么做的吧
  13. linux 卸载 sdcc,Linux sdcc安装
  14. JAVA毕业设计广东省梅州市宇恒节能科技有限公司计算机源码+lw文档+系统+调试部署+数据库
  15. python如何回退_Pycharm技巧之代码跳转该如何回退
  16. 《Edge Boxes: Locating Object Proposals from Edges》读后感~
  17. 持续迭代、永久更新的WIN NFT HORSE,具有无穷无尽的生命力
  18. JVM性能监控及调优篇
  19. vivo换手机云服务器,vivo玩机指南:换新机数据不用烦,云服务一步搞定
  20. 中国服务机器人产业发展,需要解决哪些痛点?

热门文章

  1. Centos7.5 升级openssh到9.0p1
  2. Openssh更新升级7.9p1步骤
  3. 【excel】如何进行数据排序
  4. Revit标注墙偏移如何简便标注呢?万能标注?
  5. (二)SDRAM——SDRAM操作时序
  6. php 字符串转 buffer,ArrayBuffer与字符串的互相转换
  7. 微机原理--8088/8086微处理器详解
  8. 一文学明白数据库系统--数据库系统期末复习--从入门到入考场--考前抄ppt系列
  9. 微信公众账号高级接口使用小结
  10. unigine 三维旋转矩阵(mat3,quat) scale translate 变换矩阵(mat4) 和forward up right 关系 normal binormal tangent