设置popWindow背景变暗

1.//popWindow命名为window。

//首先给window设置一个背景颜色

ColorDrawable cd = new ColorDrawable(0x000000);
  window.setBackgroundDrawable(cd);
  // 产生背景变暗效果,设置透明度
  WindowManager.LayoutParams lp = getWindow().getAttributes();
  lp.alpha = 0.4f;

//之前不写这一句也是可以实现的,这次突然没效果了。网搜之后加上了这一句就好了。据说是因为popUpWindow没有getWindow()方法。
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  getWindow().setAttributes(lp);

//这样就设置好了变暗的效果

2.//然后再设置退出popupwindow时取消暗背景

window.setOnDismissListener(new OnDismissListener() {
   
   @Override
   public void onDismiss() {
    //在dismiss中恢复透明度
    WindowManager.LayoutParams lp=getWindow().getAttributes();
    lp.alpha=1f;

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    getWindow().setAttributes(lp);
   }
  });

//这样写效率不高,代码重复。优化之后:

private void darkenBackgroud(Float bgcolor) {
  WindowManager.LayoutParams lp = getWindow().getAttributes();
  lp.alpha = bgcolor;
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  getWindow().setAttributes(lp);
 }

调用时:

1.使变暗:darkenBackgroud(0.4f);

2.使恢复:darkenBackgroud(1f);

时间: 2024-10-30 08:28:41

设置popWindow背景变暗的相关文章

弹出popwindow 背景变暗

先看下效果图吧 代码如下 package com.example.administrator.popwindowdemo.view; import android.app.Activity; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.LayoutInflater; import android.view.View; import andro

简单的jquery点击弹出背景变暗遮罩效果

工作中自己写了一个简单的jquery点击弹出背景变暗遮罩效果,非常好用......只把关键代码贴出来.并实现了点击空白处隐藏弹出层效果. js代码如下: <script type="text/javascript">  $(document).ready(function(){   $(".tkyy").click(function(event){      event.stopPropagation(); //停止事件冒泡    $(".ma

popupWindow弹出窗口的完美实现(实现弹出背景变暗效果)

最近尝试使用popupWindow实现背景变暗效果,自己优化了一下,并封装成一个可以调用的方法,默认实现弹出窗口显示在传入view的下方,以下代码有详细注释,有问题可以留言 展示效果如下: /** * 我封装的这个popupwindow的方法, * 第一个参数是他要显示在哪个控件下面 * 第二个参数是要填充到popupWindow中的布局文件id * 第三个参数是要给popupWindow设置的背景资源id */ private void showPopWindow(View v,int con

js弹窗 js弹出DIV,并使整个页面背景变暗

1.首先写一个遮罩层div,然后再写一个弹窗的div <!-- 遮罩层 --> <div id="cover" style="background: #000; position: absolute; left: 0px; top: 0px; width: 100%; filter: alpha(opacity=30); opacity: 0.3; display: none; z-index: 2 "> </div> <!

QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)

QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg(this); dlg.exec(); 如果不加this,则会在任务管理器里面产生一个新的EXE. 3.如果对话框的标题是自定义,不想使用系统的标题,这时候需要在代码中加入: setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint ); setAttr

Swing JPanel 设置画布背景及自己绘图

构造器中添加 setBackground(Color.WHITE); 重新画图中添加 @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // 转换画笔为2D Graphics2D g2d = (Graphics2D) g; // 设置画笔粗细 g2d.setStroke(new BasicStroke(5.0f)); // 设置画笔颜色 g2d.setColor(Color.GRAY);

Android给TextView和EditText等控件设置透明背景、圆角边框

第一种方法:在drawable文件夹下新建一个文件设置背景样式 代码: 在drawable文件夹下面新建textviewborder.xml <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#80858

Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())

在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等. 但是各种方法都有其注意事项,如果不注意则很容易陷入麻烦中. 1:setStyleSheet() 这个函数我一直很喜欢使用,因为只要写一句就可以实现效果,比其他方法都简单,但是其却有一个很值得注意的地方,也就是这个地方让我大吃苦头. 亦即:①:该函数只能用于设置有父窗口的子窗口的背景!如果一个窗口没有子窗口,则无法使用该函数来设置背景颜色或图  

Windows 7个性化配置,关闭Win7动画效果,设置窗口背景为“ 豆绿色”

减少眼睛疲劳配色(豆绿色): RGB:199, 237, 204,颜色名称:#C7EDCC 1.任务栏设置 2.关闭Win7动画效果 控制面板 -> 轻松访问 -> 优化视频显示 3.去掉窗口阴影 右键单击桌面“计算机” --> “属性” --> “高级系统设置” --> “高级” --> 选择“性能”的“设置” --> 弹出“性能选项”窗口 效果如下图所示: (不勾选 “在窗口下显示阴影”) 4.设置窗口背景为“ 豆绿色” 右键单击“桌面” --> “个性