欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android PopupWindow实现遮罩层效果

程序员文章站 2022-06-04 12:19:48
此篇博客实现的功能是:点击界面中的图片,跳出一个popupwindow,popupwindow中含有相应的文字和图标,并且在显示popupwindow的时候,背景为半透明。...

此篇博客实现的功能是:点击界面中的图片,跳出一个popupwindow,popupwindow中含有相应的文字和图标,并且在显示popupwindow的时候,背景为半透明。

看图描述:点击加号,跳出popupwindow,其中包含三个图片,点击叉号popupwindow消失;当popupwindow显示的时候,背景为半透明

Android PopupWindow实现遮罩层效果

Android PopupWindow实现遮罩层效果

显示popupwindow的代码

private void showpopupwindow() {
  view view = (linearlayout) getlayoutinflater().inflate(r.layout.popup_window_layout, null);
  imageview ivp = (imageview) view.findviewbyid(r.id.ivp);
  imageview ivx = (imageview) view.findviewbyid(r.id.ivx);
  imageview ivclose = (imageview) view.findviewbyid(r.id.ivclose);
  linearlayout.layoutparams params = new linearlayout.layoutparams(layoutparams.wrap_content,
    layoutparams.wrap_content);
  ivp.setlayoutparams(params);
  ivx.setlayoutparams(params);
  ivclose.setlayoutparams(params);
  ivclose.setonclicklistener(this);
  popupwindow = new popupwindow(windowmanager.layoutparams.wrap_content, windowmanager.layoutparams.wrap_content);
  popupwindow.setcontentview(view);
  popupwindow.setfocusable(true);
  popupwindow.settouchable(true);
  popupwindow.setoutsidetouchable(false);
  popupwindow.showasdropdown(ivadd, 0, 0);
  backgroundalpha(0.4f);
 }
private void backgroundalpha(float f) {
  windowmanager.layoutparams lp =getwindow().getattributes(); 
  lp.alpha = f; 
  getwindow().setattributes(lp);
 }

backgroundalpha()方法用于设置popupwindow显示后的背景半透明,参数 f 的范围是0.0~1.0,数值越大透明度越高。

源码下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。