一个应用中不缺乏给出用户提示的对话框或者选择框,Dialog 和PopupWindow是个不错的选择。
有时需要给提示框一个进入动画和退出动画,研究了下Dialog 网上很多说使用Dialog.getWindow()。后使用
window.setWindowAnimations(int) 的方法可以实现动画效果,可惜我没成功!
最后使用PopupWindow代替
PopupWindow & Dialog:
popupWindow是一个阻塞式的弹出框(在我们退出这个弹出框之前,程序会一直等待),Dialog非阻塞式弹出框(后台还可以做其他事情)
PopupWindow使用步骤总结
Ⅰ 自定义PopupWindow布局文件,并获取获取其实例
Ⅱ 创建PopupWindow对象,定义相关属性
Ⅲ PopupWindow界面显示
Ⅳ 响应自定义布局的事件
1.创建进入和退出的动画
popup_enter.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="800" android:fromYDelta="-100.0%p" android:interpolator="@android:anim/bounce_interpolator" android:toYDelta="0.0" /> </set>
popup_exit.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="700" android:fromYDelta="0.0" android:toYDelta="-100%p" /> </set>
2.动画的样式
<style name="animationPopup"> <item name="android:windowEnterAnimation">@anim/popup_enter</item> <item name="android:windowExitAnimation">@anim/popup_exit</item> </style>
3.使用一个工厂模式得到 PopupWindow的实例
package com.example.slimplepopupwindow; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.PopupWindow; public class PopupWindowFactory { public static PopupWindow getInsance(Context context, int resource){ PopupWindow popupWindow = new PopupWindow(context); View contentView = LayoutInflater.from(context).inflate(resource, null); popupWindow.setWidth(LayoutParams.WRAP_CONTENT); popupWindow.setHeight(LayoutParams.WRAP_CONTENT); popupWindow.setFocusable(true); // 设置popupWindow外部是否可以触摸 popupWindow.setOutsideTouchable(true); popupWindow.setContentView(contentView); // 添加动画的样式. popupWindow.setAnimationStyle(R.style.animationPopup); return popupWindow; } }
4.设置PopupWindow显示的位置.
显示在指定View 下方左边位置.
private void showPopupWindow(View view){ int[] location = new int[2]; view.getLocationInWindow(location); if(popupWindow != null && !popupWindow.isShowing()){ popupWindow.showAtLocation(view, Gravity.LEFT | Gravity.TOP, getResources().getDimensionPixelOffset(R.dimen.d5), location[1] + view.getHeight()); } }
动画效果可以查看:
【android】动画效果研究
相关推荐
这篇博客《PopUpWindow使用详解(一)——基本使用》及其源码,旨在帮助开发者更好地理解和运用PopupWindow。 首先,PopupWindow的基本概念是关键。它并非一个真正的Android View,而是一个可以显示View的类。通过...
本压缩包文件“BLOG_2”提供了《PopUpWindow使用详解(二)——进阶及答疑》这篇博客的源码,旨在帮助开发者深入理解和实践`PopupWindow`的高级用法以及解决实际开发中遇到的问题。 `PopupWindow`是Android SDK中的一...
本篇文章将详细介绍如何在Android应用中使用PopupWindow,并通过一个具体的案例来演示其基本用法。 首先,PopupWindow是Android SDK提供的一种轻量级的弹窗组件,相比Dialog,它的创建和显示更加灵活。PopupWindow...
下面将详细介绍`PopupWindow`的使用方法及其相关知识点。 首先,`PopupWindow`的创建需要三个基本元素:一个View(内容视图)、一个宽度和一个高度。通常,内容视图是自定义布局,包含了你想要在弹出窗口中展示的...
在“PopupWindow使用,弹出菜单窗口”的主题中,我们可以学习如何利用PopupWindow实现自定义菜单,同时结合图片展示,提升用户体验。通过不断的实践和优化,我们可以将PopupWindow应用到更多的场景,创造出更多样化...
**PopupWindow使用场景** 1. **快速菜单**: 当用户长按某个控件时,显示一个包含多个选项的PopupWindow。 2. **下拉选择器**: 如日期选择、颜色选择等,用户点击后显示一个可滚动的选择列表。 3. **浮动提示**: ...
本教程将深入探讨PopupWindow的基本使用,并结合ListView展示其实战应用。 首先,我们需要理解PopupWindow的三个核心属性:宽度、高度和背景。在创建PopupWindow时,我们可以指定其尺寸,比如设置为WRAP_CONTENT...
在标题"popupWindow使用Demo"中,我们关注的是如何利用PopupWindow实现类似于微信中点击右上角加号后弹出添加好友列表的功能,以及在底部弹出的PopupWindow效果。 首先,我们来理解PopupWindow的基本用法。...
在使用PopupWindow时,首先需要创建一个布局文件来定义弹出窗口的内容。这个布局文件可以包含任何你想要显示的View,例如按钮、文本、图片等。然后通过LayoutInflater的inflate方法将布局加载到内存中。 接下来,...
本文将深入解析Android PopupWindow的使用方法及其在不同场景下的应用。 首先,PopupWindow的基本用法分为三个主要步骤: 1. 创建PopupWindow对象实例。这通常通过传入一个View对象来实现,这个View将作为...
本文将详细介绍如何在Android项目中使用PopupWindow。 首先,了解PopupWindow的基本概念。PopupWindow是Android SDK提供的一个类,它可以创建浮动窗口,并且可以在屏幕上的任意位置显示。它不是Activity的一部分,...
在本案例中,我们将深入探讨PopupWindow的使用方法,特别是如何控制其显示位置以及如何构建一个简单的下拉列表。 首先,PopupWindow的核心类`PopupWindow`需要被实例化,传入一个View作为其内容视图。这个View可以...
在项目`PopWindowTest`中,你可以找到一个完整的PopupWindow使用示例,包括上述所有步骤。通过运行这个例子,你可以更好地理解PopupWindow的工作原理及其在实际开发中的应用。 总之,Android的PopupWindow是一个...
PopupWindow在Android开发中是一种非常常用的轻量级弹窗组件,它...在实际项目中,不断实践和优化,将使你的PopupWindow使用更加得心应手。在PopupWindowDemo中,你可以找到具体的代码示例,帮助理解并掌握这些知识点。
PopupWindow精确计算要显示位置原理和方法;实现带箭头的上下文菜单遇到的坑;Android7.0 PopupWindow的兼容… 方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以...
下面将详细讲解PopupWindow的使用方法及其相关知识点。 首先,创建PopupWindow的基本步骤如下: 1. **初始化PopupWindow**: 首先需要创建一个PopupWindow实例,传入一个View作为内容视图,以及宽度和高度。例如...
【Android PopupWindow 使用详解】 `PopupWindow` 是 Android SDK 提供的一个非常实用的组件,它允许开发者在应用程序中创建可自定义的浮窗,通常用于显示临时的通知或菜单。在这个实例中,我们将深入理解 `...
这个压缩包"popupwindow弹出框.rar"包含了一些关于PopupWindow使用的示例代码,尽管可能并未全部验证其可用性,但它们可以作为学习和参考的资源。 首先,让我们深入理解PopupWindow的基本概念。PopupWindow是...
Android下拉框PopupWindow使用详解 Android下拉框PopupWindow是一种常用的UI组件,用于在移动应用程序中实现下拉框的功能。下面将详细介绍Android下拉框PopupWindow的使用方法和实现原理。 一、PopupWindow的基本...