`

PopupWindow的使用

 
阅读更多

一个应用中不缺乏给出用户提示的对话框或者选择框,Dialog 和PopupWindow是个不错的选择。

有时需要给提示框一个进入动画和退出动画,研究了下Dialog 网上很多说使用Dialog.getWindow()。后使用

window.setWindowAnimations(int) 的方法可以实现动画效果,可惜我没成功!

 

最后使用PopupWindow代替

PopupWindow & Dialog:
  popupWindow是一个阻塞式的弹出框(在我们退出这个弹出框之前,程序会一直等待),Dialog非阻塞式弹出框(后台还可以做其他事情)

PopupWindow使用步骤总结
  Ⅰ  自定义PopupWindow布局文件,并获取获取其实例
  Ⅱ  创建PopupWindow对象,定义相关属性
  Ⅲ  PopupWindow界面显示
  Ⅳ  响应自定义布局的事件

 

1.创建进入和退出的动画

   popup_enter.xml

 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。 首先,PopupWindow的基本概念是关键。它并非一个真正的Android View,而是一个可以显示View的类。通过...

    博客《PopUpWindow使用详解(二)——进阶及答疑》对应源码

    本压缩包文件“BLOG_2”提供了《PopUpWindow使用详解(二)——进阶及答疑》这篇博客的源码,旨在帮助开发者深入理解和实践`PopupWindow`的高级用法以及解决实际开发中遇到的问题。 `PopupWindow`是Android SDK中的一...

    android的popupWindow使用

    本篇文章将详细介绍如何在Android应用中使用PopupWindow,并通过一个具体的案例来演示其基本用法。 首先,PopupWindow是Android SDK提供的一种轻量级的弹窗组件,相比Dialog,它的创建和显示更加灵活。PopupWindow...

    Android PopupWindow使用示例

    下面将详细介绍`PopupWindow`的使用方法及其相关知识点。 首先,`PopupWindow`的创建需要三个基本元素:一个View(内容视图)、一个宽度和一个高度。通常,内容视图是自定义布局,包含了你想要在弹出窗口中展示的...

    PopupWindow使用,弹出菜单窗口

    在“PopupWindow使用,弹出菜单窗口”的主题中,我们可以学习如何利用PopupWindow实现自定义菜单,同时结合图片展示,提升用户体验。通过不断的实践和优化,我们可以将PopupWindow应用到更多的场景,创造出更多样化...

    PopupWindow 使用实例

    **PopupWindow使用场景** 1. **快速菜单**: 当用户长按某个控件时,显示一个包含多个选项的PopupWindow。 2. **下拉选择器**: 如日期选择、颜色选择等,用户点击后显示一个可滚动的选择列表。 3. **浮动提示**: ...

    popupwindow使用

    本教程将深入探讨PopupWindow的基本使用,并结合ListView展示其实战应用。 首先,我们需要理解PopupWindow的三个核心属性:宽度、高度和背景。在创建PopupWindow时,我们可以指定其尺寸,比如设置为WRAP_CONTENT...

    popupWindow使用Demo

    在标题"popupWindow使用Demo"中,我们关注的是如何利用PopupWindow实现类似于微信中点击右上角加号后弹出添加好友列表的功能,以及在底部弹出的PopupWindow效果。 首先,我们来理解PopupWindow的基本用法。...

    popupWindow使用

    在使用PopupWindow时,首先需要创建一个布局文件来定义弹出窗口的内容。这个布局文件可以包含任何你想要显示的View,例如按钮、文本、图片等。然后通过LayoutInflater的inflate方法将布局加载到内存中。 接下来,...

    Android PopupWindow使用方法小结

    本文将深入解析Android PopupWindow的使用方法及其在不同场景下的应用。 首先,PopupWindow的基本用法分为三个主要步骤: 1. 创建PopupWindow对象实例。这通常通过传入一个View对象来实现,这个View将作为...

    Android PopupWindow使用

    本文将详细介绍如何在Android项目中使用PopupWindow。 首先,了解PopupWindow的基本概念。PopupWindow是Android SDK提供的一个类,它可以创建浮动窗口,并且可以在屏幕上的任意位置显示。它不是Activity的一部分,...

    popupwindow使用案例

    在本案例中,我们将深入探讨PopupWindow的使用方法,特别是如何控制其显示位置以及如何构建一个简单的下拉列表。 首先,PopupWindow的核心类`PopupWindow`需要被实例化,传入一个View作为其内容视图。这个View可以...

    Android popupwindow 实例及使用

    在项目`PopWindowTest`中,你可以找到一个完整的PopupWindow使用示例,包括上述所有步骤。通过运行这个例子,你可以更好地理解PopupWindow的工作原理及其在实际开发中的应用。 总之,Android的PopupWindow是一个...

    PopupWindow嵌套Demo

    PopupWindow在Android开发中是一种非常常用的轻量级弹窗组件,它...在实际项目中,不断实践和优化,将使你的PopupWindow使用更加得心应手。在PopupWindowDemo中,你可以找到具体的代码示例,帮助理解并掌握这些知识点。

    关于PopupWindow使用过程中遇到的一些特殊问题的解决方案.zip

    PopupWindow精确计算要显示位置原理和方法;实现带箭头的上下文菜单遇到的坑;Android7.0 PopupWindow的兼容… 方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以...

    Android中PopupWindow使用方法详解

    下面将详细讲解PopupWindow的使用方法及其相关知识点。 首先,创建PopupWindow的基本步骤如下: 1. **初始化PopupWindow**: 首先需要创建一个PopupWindow实例,传入一个View作为内容视图,以及宽度和高度。例如...

    Android PopupWindow使用实例

    【Android PopupWindow 使用详解】 `PopupWindow` 是 Android SDK 提供的一个非常实用的组件,它允许开发者在应用程序中创建可自定义的浮窗,通常用于显示临时的通知或菜单。在这个实例中,我们将深入理解 `...

    安卓popupwindow相关-popupwindow弹出框.rar

    这个压缩包"popupwindow弹出框.rar"包含了一些关于PopupWindow使用的示例代码,尽管可能并未全部验证其可用性,但它们可以作为学习和参考的资源。 首先,让我们深入理解PopupWindow的基本概念。PopupWindow是...

    Android下拉框PopupWindow使用详解

    Android下拉框PopupWindow使用详解 Android下拉框PopupWindow是一种常用的UI组件,用于在移动应用程序中实现下拉框的功能。下面将详细介绍Android下拉框PopupWindow的使用方法和实现原理。 一、PopupWindow的基本...

Global site tag (gtag.js) - Google Analytics