android中popupwindow弹出后,屏幕背景变成半透明
16lz
2021-01-23
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{@Overridepublic void onDismiss() {// TODO Auto-generated method stub//Log.v("List_noteTypeActivity:", "我是关闭事件");backgroundAlpha(1f);}}
上面 popWin.setOnDismissListener(new poponDismissListener());
的代码就是调用这个事件 更多相关文章
- Android 5.0 自定义dialog 背景不透明解决方法
- 一个关于android中ListView的子控件中按钮事件的简单方法
- android的触摸事件
- [置顶] Android WebKit消息处理(二)Touch事件的分发处理
- android 事件分发之dispatchTouchEvent()用法
- [Android]RecyclerView基本使用+adapter回调接口实现点击事件
- Android layer-list 圆角阴影背景
- EditText点击事件——弹出单选框