PopupWindow弹出窗的简单实现

Android-实现底部弹出PopupWindow并让背景逐渐变暗 Android-实现底部弹出PopupWindow并让背景逐渐变暗在android开发中,经常需要通过点击某个按钮弹出对话框或者选择框,通过Dialog或者PopupMenu、PopupWindow都能实现。 这里主要介绍后两者:PopupMenu、PopupWindow的实现。 先看两个效果图左边PopupMenu,右边PopupWindow: Android-实现底部弹出PopupWind 阅读详情

PopupWindow这个类用来实现一个弹出框, 可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。如下图为微信上的一个简单的弹出窗:


                                   

现在我们就来简单的实现一下这个功能,我们选择第二个弹出的例子来学习弹出窗的开发过程:

一、定义弹出窗的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/btn_style_alert_dialog_background">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="拍照"
        android:id="@+id/btnTakePhoto"
        android:background="@drawable/btnseletor_photo"<span style="font-family:微软雅黑;">//这儿是图片选择器,选中和默认的图片的显示不同</span>
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="从相册选择"
        android:id="@+id/btnChoose"
        android:background="@drawable/btnseletor_photo"
        android:layout_marginTop="5dp"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="取消"
        android:id="@+id/btnCancel"
        android:background="@drawable/btnseletor_cancel"
        android:layout_marginTop="12dp"
        />
</LinearLayout>

二、创建并初始化弹出框

 /**
     * 创建并初始化弹出框
     */
    private void initPopWindow() {
        View view = this.getLayoutInflater().inflate(R.layout.layout_pop,
                (ViewGroup) getWindow().getDecorView(),
                false);
        popupWindow = new PopupWindow(view,
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.WRAP_CONTENT,true);

        popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
      
    }



三、显示弹出窗

 popupWindow.showAtLocation(this.getWindow().getDecorView(), Gravity.BOTTOM,0,0);
通过前面的三个步骤,咋们就可以看见我们的弹出窗了,但是为了让我们的弹出窗能够有一个动画的效果,增强用户体验。那么我们应该给弹出窗增加动画效果。步骤也分三个:

  1.定义动画的布局文件 

弹出窗进入的动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!---->
    <translate android:duration="1000"
        android:fromYDelta="100%p" android:toYDelta="0"></translate>

    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="1000"/>
</set>
弹出窗取消的动画:
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate android:duration="2000"
        android:fromYDelta="0" android:toYDelta="100%p"></translate>
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:duration="2000"/>
</set>

   2.定义弹出窗动画的样式
<pre name="code" class="html"> <style name="Popwindow" parent="android:Animation">

        <item name="android:windowEnterAnimation">@anim/anim_translate_in</item>
        <item name="android:windowExitAnimation">@anim/anim_translate_out</item>
    </style>



   3.在创建弹出窗的时候设置动画样式 
 popupWindow.setAnimationStyle(R.style.Popwindow);

   最终的效果如下:

                                                               





android利用PopupWindow实现点击工具栏弹出下拉菜单 本文介绍了如何利用PopupWindow实现点击屏幕顶部工具栏按钮弹出下拉菜单的功能。 阅读详情

相关推荐

Android 动画效果弹出PopupWindow,同时屏幕背景变暗

最近做项目的时候,希望弹出一个PopupWindow,但是效果并不美观,所以自己写了个效果,动画弹出PopupWindow,是飞入/飞出,加上渐变的效果。在弹出PopupWindow的同时,改变屏幕背景的透明度,使屏幕背景变暗。

ddxxll2008的专栏 6405

对于 Android 业务开发的一些理解总结

关于 PopupWindow ,很多博客有谈到利用 Builder 设计模式的链式写法,以下是我项目中的类似写法 /** * 显示选择性别 */ private void showGenderPopWindow() { if (null == genderPopupWindow) { CommonPop.Builder bui...

Android 开发架构 305

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 819

android DecorView的使用

今天,简单讲讲android 中的  DecorView的使用。 getWindow().getDecorView()的方法可以获取到decorView,decorView是什么呢? decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程

谢岩的博客 1万+

运算放大器电路仿真实践:从零实现完整示例

通过一个完整的运算放大器电路仿真示例,深入掌握电路仿真的关键步骤与技巧,帮助电子爱好者和工程师快速上手实际项目设计。

weixin_34725745的博客 1319

家庭路由器从入门到精通:连接设置、优化排障全指南

路由器作为家庭网络的核心枢纽,其工作原理基于NAT(网络地址转换)和DHCP(动态主机配置协议)两大关键技术。NAT负责将公网IP转换为多个内网IP,实现多设备共享上网;DHCP则自动为接入设备分配IP地址,简化网络配置。这些技术共同构建了稳定、安全的局域网环境,其价值在于为智能家居、在线办公、高清影音和游戏娱乐等场景提供可靠的网络基础。理解路由器的物理连接、后台设置与故障排查逻辑,是优化Wi-Fi信号覆盖、提升网络性能、保障家庭网络安全的关键。本文以路由器配置与排障为核心,详细解析从WAN/LAN口区分、

weixin_33393017的博客 406

PopUpWindow使用详解(二)——进阶及答疑

前言:有人问我,即便梦想成真了又能怎样,或许不能怎样,但这是梦想。 相关文章:1、《PopUpWindow使用详解(一)——基本使用》2、《PopUpWindow使用详解(二)——进阶及答疑》 上篇为大家基本讲述了有关PopupWindow的基本使用,但还有几个相关函数还没有讲述,我们这篇将着重看看这几个函数的用法并结合源码来讲讲具体原因,最后是有关PopupWindow在使用时的疑...

启舰 3万+

游戏开发中的CV:实时动作捕捉与虚拟交互

游戏开发中的CV:实时动作捕捉与虚拟交互​ ,人工智能,计算机视觉,大模型,AI,在当今游戏产业中,玩家对游戏体验的要求日益提高,追求更加真实、沉浸的交互感受。计算机视觉(Computer Vision,CV)技术的飞速发展,为游戏开发带来了革命性的突破,其中实时动作捕捉与虚拟交互技术更是成为提升游戏品质的核心驱动力。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

PopupWindow踩过的坑

PopupWindow是Android上自定义的弹出界面,方便用户的自定义样式。 点进popupwindow的源码中你会看到有这样一个构造函数的,里面的参数分别是(引用的布局即显示的view,宽,高,焦点)focusable为是否可以获得焦点,这是一个很重要的参数,也可以通过 public void setFocusable(boolean focusable) { throw new

qq_31091207的博客 359

[Dify] 实现“多知识库切换”功能的最佳实践

知识库切换是提升AI问答系统精准度的关键技术。本文介绍了Dify平台实现多知识库切换的三种方式:静态配置、元数据过滤和动态切换,分析了各自的优缺点。最佳实践建议包括:合理分库设计、意图分类、主库优先检索等。文章还提供了示例工作流程和注意事项,帮助构建更智能、精准的知识驱动型问答系统。通过合理切换知识库,可显著提升回答相关性和系统性能。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 441

YOLOv13结合Sobel边缘检测算子,实现EIEM(Edge Information Enhancement Module,边缘信息增强模块),强化空间特征提取

EIEM模块通过巧妙地结合Sobel边缘检测算子和现代卷积网络架构,实现了显式边缘信息增强的创新设计。这种方法不仅提高了网络对边缘特征的敏感性,还保持了良好的计算效率和模块化特性。 从技术实现角度看,EIEM展示了如何将经典计算机视觉算法无缝集成到深度学习框架中,为构建更强大、更可解释的视觉模型提供了新的思路。随着对边缘信息重要性认识的不断深入,以及对网络可解释性需求的增长,EIEM这样的显式特征增强模块将在未来的计算机视觉研究中发挥越来越重要的作用。

FJN110的博客 906

popupwindow弹出窗关闭,当外部点击时,如何使用和关闭PopupWindow?

I'm currently designing simple tips popups using the PopupWindow class. I'm able to dismiss the popup when clicked outside of the content. However the touch events outside are consumed by the underli...

weixin_26643379的博客 254

【系统分析师】高分论文:论基于构件的软件开发(气象灾害影响评估系统)

本文以某手机气象灾害影响评估系统为例,探讨了基于构件技术的软件开发实践。通过分析开发中常见的功能模块重复问题,提出建立企业构件库、针对性选择构件和加强构件管理的解决方案。项目实施中成功复用登录模块等通用构件,并针对气象数据转换需求开发新构件,最终在8个月内高质量完成系统建设。文章总结了构件开发的三个关键点:构件库建设是基础、构件选择需精准、构件管理要规范。同时指出需注意全新需求开发、性能优化等问题,建议通过培训提升团队对构件的理解力。该案例证明构件技术能有效缩短周期、降低成本,为企业积累可复用的技术资产。

数据知道的博客 4253

popupwindow弹出窗关闭_popupwindow 弹出窗体

popupwindow 弹出窗体,和对话框类似是轻量级的窗体,可以在窗体中显示各种效果1.创建popupwindow 弹出窗体,PopupWindow popupWindow = new PopupWindow(contentView,width,height);contentView:是要显示的view对象,后面两个是高度跟宽度2.定义一个view对象传入到contentView中3.显示出来p...

weixin_30268555的博客 975

Open3D 球旋转算法(BPA)三维建模【2026最新版】

球旋转算法,博客长期更新,本文最新更新时间为:2026年4月11日。

点云侠的博客 37万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

popupwindow弹出窗关闭_Android Popupwindow弹出窗口的简单使用方法

本文实例为大家分享了Android Popupwindow弹出窗口的具体代码,供大家参考,具体内容如下代码很简单,没有和别的控件连用。布局自己随意定义,我的这个是最基础的,就直接上代码啦!在MainActivity里import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCom...

weixin_33091939的博客 749

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android学习笔记二十之Toast吐司、Notification通知、PopupWindow弹出窗

Android学习笔记二十之Toast吐司、Notification通知、PopupWindow弹出窗

Huawen的博客 7343

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

从屏幕底部弹出PopupWindow

最近因为要用到PopupWindow,所以,就在网上搜索了一下,发现挺多关于这样的文章,现在我把它们整理了一下。   1、Android PopupWindow 的使用技巧,http://www.cnblogs.com/sw926/p/3230659.html 2、Android PopupWindow 的使用和分析,http://www.cnblogs.com/mengdd/p/356912

yxhuang2008的专栏 2万+

popupwindow弹出窗关闭_弹出窗口:PopupWindow 详解

效果如图所示,点击开始按钮,popWindow从下往上出来,再点击popWindow外面,popWindow又从上往下消失可以看出来,上面的popupWindow是半透明的,后面我会细说。最基本的是activity_main了,很简单,就只是一个button,这里我就不贴代码了。接下来的是,popWindow的界面了代码如下: 这里注意我里面的那个注释android:layout_width="m...

weixin_39884877的博客 659

Android之用PopupWindow实现弹出菜单

Android之用PopupWindow实现弹出菜单---多选项、分栏菜单

kkfdsa132的专栏 7万+

popupwindow弹出窗关闭_Android popupWindow弹出窗体实现方法分析

本文实例讲述了Android popupWindow弹出窗体实现方法。分享给大家供大家参考,具体如下:1. 建立popupwindow显示的布局页面(普通的view任意布局)android:layout_width="match_parent"android:layout_height="80dip"android:background="@drawable/popup_yellow_window...

weixin_42207707的博客 278

popupwindow弹出窗关闭_封装使用PopupWindow弹出窗口(一)

引用现如今很多软件都有个人中心,而个人中心往往都用来设置个人信息,一般的个人中心包括:用户头像,用户名,以及其他的业务逻辑需要的集合。今天我们就来封装弹出窗口PopupWindow,点击更换头像就是很经典的例子。介绍PopupWindow用来做弹出框并不是独一份,一般系统使用的是另一种,我们很多软件的消息通知其实都是用AlertDialog,但PopupWindow好就好在它足够灵活,可以适应很多...

weixin_42238594的博客 381

Android 实现点击按钮弹出窗口---PopupWindow

Android 实现点击按钮弹出窗口—PopupWindow 1.PopupWindow布局文件test_popup.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_

weixin_44318522的博客 3789

Android实现PopupWindow浮窗

Android实现PopupWindow浮窗

wangguijun1212的博客 1350

popupwindow弹出窗关闭_【Android】在任意位置弹出PopupWindow

又是一张毫不相关的图前言在日常的开发中,经常会有弹框的操作。实现弹框有两种选,PopupWindow或者Dialog,这里就先忽略Dialog。弹框可能会在各种位置出现,在指定View的上、下、左、右、左对齐、右对齐等...而PopupWindow似乎就提供了showAsDropDown方法(请忽略showAtLocation,这边说的是相对于View显示),这~~就有点尴尬了。PopupWind...

weixin_39617484的博客 492
上一篇: android高级框架xUtils之HttpUtils
下一篇: android中信息列表的下拉刷新和下拉加载
program008
博客等级 码龄11年 5粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值