Android编程实现popupwindow弹出后屏幕背景变成半透明效果
程序员文章站
2023-12-20 10:17:40
本文实例讲述了android编程实现popupwindow弹出后屏幕背景变成半透明效果的方法。分享给大家供大家参考,具体如下:
android中popupwindow弹出...
本文实例讲述了android编程实现popupwindow弹出后屏幕背景变成半透明效果的方法。分享给大家供大家参考,具体如下:
android中popupwindow弹出后,屏幕背景变成半透明这个效果很普通。实现的方法也很多。我使用的可能是最简单的一种,就是设置一下getwindows的透明度。不多说上代码
/** * 设置添加屏幕的背景透明度 * @param bgalpha */ public void backgroundalpha(float bgalpha) { windowmanager.layoutparams lp = getwindow().getattributes(); lp.alpha = bgalpha; //0.0-1.0 getwindow().setattributes(lp); }
之所以设置成方法,是因为当popwindow关闭的时候我们还要将这个透明度改回来。
popwin = new popupwindow(popaddnotetype, mscreenwidth *8 /10, viewgroup.layoutparams.wrap_content); //在popupwindow里面就加上下面代码,让键盘弹出时,不会挡住pop窗口。 popwin.setinputmethodmode(popupwindow.input_method_needed); popwin.setsoftinputmode(windowmanager.layoutparams.soft_input_adjust_resize); //点击空白处时,隐藏掉pop窗口 popwin.setfocusable(true); popwin.setbackgrounddrawable(new bitmapdrawable()); backgroundalpha(1f); //添加pop窗口关闭事件 popwin.setondismisslistener(new popondismisslistener());
这里可能有人就要问了,当我点击屏幕空白处时,pop窗口是没了,可是背景还是半透明的,这不行啊。这里我们就用到一个事件
/** * 添加新笔记时弹出的popwin关闭的事件,主要是为了将背景透明度改回来 * @author cg * */ class popondismisslistener implements popupwindow.ondismisslistener{ @override public void ondismiss() { // todo auto-generated method stub //log.v("list_notetypeactivity:", "我是关闭事件"); backgroundalpha(1f); } }
上面
复制代码 代码如下:
popwin.setondismisslistener(new popondismisslistener());
的代码就是调用这个事件
希望本文所述对大家android程序设计有所帮助。