首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在android中创建一个可以在显示屏上的任意位置关闭的PopUpWindow?

在Android中创建一个可以在显示屏上的任意位置关闭的PopUpWindow,可以按照以下步骤进行:

  1. 创建一个自定义的PopUpWindow布局文件,例如popup_window.xml,定义其中的视图和样式。
  2. 在需要显示PopUpWindow的Activity或Fragment中,通过LayoutInflater加载popup_window.xml布局文件,并创建PopUpWindow对象。
  3. 设置PopUpWindow的宽度、高度、背景等属性,可以使用setWidth()、setHeight()、setBackgroundDrawable()等方法进行设置。
  4. 设置PopUpWindow的显示位置,可以使用showAtLocation()方法指定显示在屏幕的任意位置,或者使用showAsDropDown()方法指定显示在某个View的下方。
  5. 为PopUpWindow中的关闭按钮或其他触发关闭的视图添加点击事件监听器,当点击关闭按钮时,调用PopUpWindow的dismiss()方法关闭PopUpWindow。

下面是一个示例代码:

代码语言:java
复制
// 加载popup_window.xml布局文件
View popupView = LayoutInflater.from(context).inflate(R.layout.popup_window, null);

// 创建PopUpWindow对象
PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

// 设置PopUpWindow的属性
popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

// 设置PopUpWindow的显示位置
popupWindow.showAtLocation(parentView, Gravity.CENTER, 0, 0);

// 关闭按钮的点击事件监听器
Button closeButton = popupView.findViewById(R.id.close_button);
closeButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 关闭PopUpWindow
        popupWindow.dismiss();
    }
});

在上述示例代码中,popup_window.xml是自定义的PopUpWindow布局文件,可以根据需求自行设计。通过设置PopUpWindow的宽度、高度、背景等属性,以及使用showAtLocation()方法指定显示位置,可以实现在Android中创建一个可以在显示屏上的任意位置关闭的PopUpWindow。

注意:以上示例代码中的R.layout.popup_window和R.id.close_button需要根据实际情况进行替换,分别代表自定义布局文件和关闭按钮的资源ID。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(六十五)多样菜单

onContextMenuClosed方法关闭整个菜单,而选项菜单只是界面上消失,并未调用关闭菜单方法onOptionsMenuClosed; 弹窗PopupWindow 实际开发Android...自带菜单显得朴素不够灵活,一个位置固定,选项菜单固定从页面底部弹出,溢出菜单固定从页面右上角弹出,上下文菜单固定显示页面中央;另一个是样式固定,无法设置菜单背景,也无法设置其他菜单显示元素(即使是简单显示左侧图标...为解决以上不足,我们可利用弹窗PopupWindow来实现任意位置菜单展示,以及可定制菜单样式。...PopupWindow机制是实现一个弹出框,其内容可以任意布局View,其页面悬浮在当前Activity页面之上。...为true则弹窗以外区域不可点击,为false则弹窗以外区域可以点击。 setBackgroundDrawable : 设置弹窗背景。

1.3K30

PopupWindow自定义位置显示实现代码

一、概述 Android中弹出式菜单(以下称弹窗)是使用十分广泛一种菜单呈现方式,弹窗为用户交互提供了便利。...关于弹窗实现大致有以下两种方式AlertDialog和PopupWindow,当然网上也有使用Activity并配合Dialog主题方式实现弹窗,有兴趣朋友也可以去研究一下。...对于AlertDialog和PopupWindow两者最主要区别就是显示位置问题: (1)AlertDialog在位置显示是固定 (2)PopupWindow相对比较随意,能够主屏幕任意位置显示...,也可以用WRAP_CONTENT // 设置位置 popupWindow.showAtLocation(popupView, Gravity.NO_GRAVITY,x,y);...popupWindow.dismiss(); } },1000); return true; } } (2)布局文件代码省略。

1K10

Android项目实战(二十七):数据交互(信息编辑)填写总结

注:   先写实现过程,想要学习同学可以看看,不需要同学可以直接拉到最下面复制代码使用。...需求包括:  1、顶部两个按钮:“取消”、“确定”按钮 2、标题 3、滚动wheelview选择器 代码实现: 1、选择一个WheelView控件,这个github很多,我这里选用是  https...任意按钮,记得关闭popupWindow, popup.dismiss(); } }; 6、界面半透明效果方法   /** * 设置添加屏幕背景透明度...任意按钮,记得关闭popupWindow, popup.dismiss(); } }; 弹出PopupWindow操作 ArrayList<String...任意按钮,记得关闭popupWindow, popup.dismiss(); } }; 效果图: ?

3.5K70

Android从零单排系列二十三】《Android视图控件——PopupWindow

PopupWindow基本介绍 PopupWindowAndroid一个弹出窗口控件,它可以屏幕上方或下方弹出一个类似浮层视图。...通过PopupWindow可以在当前Activity顶层展示一个视图,并且可以设置其位置、大小、动画效果等属性。...二 PopupWindow使用方法 要使用PopupWindow可以按照以下步骤进行操作: 创建PopupWindow对象: PopupWindow popupWindow = new PopupWindow...位置和偏移: showAsDropDown(View anchor):将PopupWindow显示指定锚点View下方。...四 总结 PopupWindowAndroid中用于实现弹出式窗口控件,可以展示自定义视图,并具有灵活位置、大小和样式设置。

21410

信息提醒之Toast-更新

概述 Toast与对话框类似,也会在屏幕某个位置弹出一个窗口,在窗口中可以显示文本、图片等信息 与对话框不同是,Toast信息提示框不可获得焦点,而且显示一定时间后会自动关闭。...因此,再显示Toast信息提示框同时,屏幕控件仍然可以继续操作。 Toast基本用法 显示Toast需要使用android.widget.Toast类。...); 分析: 上述代码使用Toast类静态方法创建一个Toast对象。...注意:创建只显示文本Toast对象时,建议使用Toast.makeText方法,而不要直接new Toast对象,虽然Toast类有setText方法,但是不能在使用new关键字创建Toast对象后设置...> 如果同时多个Toast信息提示框,系统会将这些Toast信息提示框放到队列,等前一个Toast信息提示框关闭后会显示下一个Toast信息提示框,也就是说Toast信息提示框是按顺序显示 ----

63050

Android项目实战(十七):QQ空间实现(二)—— 分享功能 弹出PopupWindow

分析: 1、点击右上角三个点图标,界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外部分...PopupWindow ,注意 父容器需要有一个id,因为我们需要它来给PopupWindow设置弹出位置 <RelativeLayout xmlns:android="http://schemas.android.com...之外部分 关闭popupWindow mMenuView.setOnTouchListener(new OnTouchListener() { public...任意按钮,记得关闭popupWindow, feedSelectPopupWindow.dismiss(); } }; /**...()方法,那么要注意PopupWindow和Dialog一样是需要依赖于Activity存在 所以不要在onCreate()方法中使用 .showAtLocation()方法 ,因为这个时候Activity

1.1K60

PopupWindow

一个弹出窗口控件,可以用来显示任意View,而且会浮动在当前activity顶部 常用构造方法 一下仅列出本人认为常用构造方法,全部构造方法(9个….)请查看官方文档。...,下方Gravity.BOTTOM等),可以设置偏移或无偏移 PS:parent这个参数只要是activityview就可以了!...setWidth/setHeight 设置宽高,也可以构造方法那里指定好宽高, 除了可以写具体值,还可以用WRAP_CONTENT或MATCH_PARENT, popupWindowwidth和height...实际, 如果: setFocusable(true); 则PopUpWindow本身可以看作一个类似于模态对话框东西(但有区别),PopupWindow弹出后,所有的触屏和物理按键都有PopupWindows...如此设置才能让PopupWindow点击back时候消失。

82440

Android弹窗二则: PopupWindow和AlertDialog

这里说两个常用弹窗类, PopupWindow和AlertDialog. 我理解就是, PopupWindow较为随性, 可以任意位置弹窗, 比如你经常看到朋友圈点赞那个小弹窗....(R.style.anim_menu_bottombar); popupWindow.showAsDropDown(bt_popup, 0, 0); 解析: 首先肯定是创建一个PopupWindow...高版本android(比如8.0), 实测可以不写, 但是低版本就不行了(比如4.1), 低版本不写的话, 会导致点击返回或者是屏幕其它地方无法取消弹窗, 所以稳妥起见还是加上, 并设置一个透明色...单选多选条目展示 ---- 内容补充 补充: 我们现在来说一个比较复杂, 也比较有意思. 就是弹窗填充自定义view....要说是, 大家仔细看效果图, 会发现自定义View可以和builder.setMessage("message");共存, 但事实, 好像没有这个必要, 我故意把一些非自定义也展示出来, 其实自定义

1.6K60

PopupWindow

这里说不容易指定位置是没有方便系统接口来控制 Dialog 显示位置,当然你可以使用 WindowManager 来指定 Dailog 显示位置,但对于 PopupWindow可以通过系统提供接口随意定义显示位置...--> PopupWindow 是否获取焦点 创建 PopupWindow 必须要是三个条件,缺少一个无法显示: 1. void setHeight (int height) // 因为PopupWindow...页面只有一个 Button ,我们创建 PopupWindow 会把这 Button 传入到 PopupWindow show() 方法当作上面所说那个锚点 View— anchor 。...看有点奇怪,其实是只传一个参数,没有传入位置信息,默认显示左下方。...图中可以看到,我们创建了两个 xml 资源描述 PopupWindow进入动画与退出动画。 <?

1.1K50

Android使用后端云Bmob实现登录、注册及失物招领

最近在使用后端云Bmob对数据进行存储,目的是不搭建服务器前提下,能对Android应用数据进行操作处理。...创建成功之后点击创建应用进去,设置->应用秘钥可以找到应用秘钥 [6bqypkxzem.png] 在这里插入图片描述 三、AndroidStudio SDK导入信息配置 详细参考:http:/.../doc.bmob.cn/data/android/index.html 1、 Project build.gradle 文件添加 Bmobmaven仓库地址 buildscript {...有了这个类,你就可以在你应用程序添加用户账户功能。BmobUser是BmobObject一个子类,它继承了BmobObject所有的方法,具有BmobObject相同功能。...8-3、需要Demo源码童鞋,可以底部公众号回复:"BmobDemo"即可获取。 小编整理了一份Android电子书籍,需要童鞋关注公众号回复:"e_books" 即可获取哦!

3.2K30

三星折叠屏开发者设计指南揭秘

不要在活动OnDestroy()调用finish()或自行终止进程,否则将导致APP设备折叠或展开时关闭。...image 2.2 APP如何在Multi-resume运行 Android P (9.0)启用Multi-resume,请在应用清单manifest增加如下元数据: ? image 3....3.2 优化内外屏布局 可折叠移动设备,应用程序可以运行在大小不同显示屏,我们首先建议添加一个单独资源文件夹来展示更丰富更清晰内容。...备用布局,Android允许应用针对不同屏幕配置提供多种备选布局。可以利用配置限定符实现此目的,它允许系统根据当前配置(针对不同屏幕尺寸不同布局设计)自动选择合适资源。...多活动窗口 当手机展开时,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备通过元数据方式测试多活动窗口。

4K40

Android】在任意位置弹出PopupWindow

前言 日常开发,经常会有弹框操作。实现弹框有两种选,PopupWindow或者Dialog,这里就先忽略Dialog。...弹框可能会在各种位置出现,指定View、下、左、右、左对齐、右对齐等......PopupWindow 平时我们可能是这样用PopupWindow创建一个布局,再创建一个类继承PopupWindow public class TestPopupWindow extends...各种位置弹窗 下面就来利用xoff、yoff在你想要任何位置弹框。 准备工作 弹框前,需要得到PopupWindow大小(也就是PopupWindowcontentView大小)。...大小后,就在任意位置弹窗了 弹框位置无非就是根据PopupWindow以及指定View大小,计算水平、竖直方向偏移。

4.2K110

Android网络请求慢时候,任意位置弹出加载中提示

大家好我是王大锤,我们老板给我一个任务,让我在任何有网络请求地方,如果时间超过一秒就提示一个加载提示,好去捞客户钱 。...} } } OK初步已经完成了,开始沾沾自喜了,欣喜笑容很快就印嘴角上了,然后我又遇到了一个问题, 我想在控件下方正中央显示,可是我获取到popuwindow...} } fun show() { // 显示位置为,控件下方水平中间位置 showAsDropDown...这里使用了RXJAVA用来避免子线程修改UI,以及延时一秒以做到判断是否网络卡情况 当然,既然是popuwindow,你就可以随意更改提示图样,或者文字。...配合你自己网络请求框架或者封装,就可以做到一个提示。 END.

1.6K30

Android网络请求慢时候,任意位置弹出加载中提示

大家好我是王大锤,我们老板给我一个任务,让我在任何有网络请求地方,如果时间超过一秒就提示一个加载提示,好去捞客户钱 。...} } } OK初步已经完成了,开始沾沾自喜了,欣喜笑容很快就印嘴角上了,然后我又遇到了一个问题, 我想在控件下方正中央显示,可是我获取到popuwindow宽度总是0是怎么回事?...} } fun show() { // 显示位置为,控件下方水平中间位置 showAsDropDown(parView,parView.width...输入图片说明 这里使用了RXJAVA用来避免子线程修改UI,以及延时一秒以做到判断是否网络卡情况 当然,既然是popuwindow,你就可以随意更改提示图样,或者文字。...配合你自己网络请求框架或者封装,就可以做到一个提示。 ---- END.

60950

Android技能树 — PopupWindow小结

前言: 关于下拉选择框,估计大家都有很多选择,我以前文章:项目需求讨论-HyBrid模式需求改造 写过下拉框选择这一块,正好用Spinner。...PopupWindow显示在这个控件下方;而showAtLocation是相对于屏幕,可以通过设置Gravity来指定PopupWindow显示屏幕那个位置。...我们可以看到我们工具类,有一段代码: builder.view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED...我们应该都做过或者看见过添加悬浮窗等功能,或者某些文章看见过Window和WindowManager介绍,比如在《Android艺术开发之旅》里面,也有相关一章专门讲这个,大家可以看下: Android...真正样子,也就是view创建出来' preparePopup(p); //'findDropDownPosition方法确定好PopupWindow要显示位置' final

1.4K11

Android技能树 — PopupWindow小结

前言: 关于下拉选择框,估计大家都有很多选择,我以前文章:项目需求讨论-HyBrid模式需求改造 写过下拉框选择这一块,正好用Spinner。...所以我们可以先来看下我们需要下拉框样式:(为了随便举个例子,所以设计比较丑): 我们可以一步步来看如何实现: 1.基础使用教程 既然要跳出下面的弹框,而且本文说过要使用PopupWindow,所以就是实现一个...是相对于屏幕,可以通过设置Gravity来指定PopupWindow显示屏幕那个位置。...我们可以看到我们工具类,有一段代码: builder.view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED...真正样子,也就是view创建出来' preparePopup(p); //'findDropDownPosition方法确定好PopupWindow要显示位置' final

21110
领券