popupwindow展示

  样式:

  layout:

popup_appinfo.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:background="@drawable/pop_bg"
 6     android:orientation="horizontal" >
 7
 8     <TextView
 9         android:id="@+id/tv_uninstall"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:layout_margin="3dp"
13         android:drawablePadding="3dp"
14         android:drawableTop="@drawable/ic_uninstall"
15         android:text="卸载"
16         android:textColor="@color/black"
17         android:textSize="16sp" />
18
19     <TextView
20         android:id="@+id/tv_open"
21         android:layout_width="wrap_content"
22         android:layout_height="wrap_content"
23         android:layout_margin="3dp"
24         android:drawablePadding="3dp"
25         android:drawableTop="@drawable/ic_open"
26         android:text="打开"
27         android:textColor="@color/black"
28         android:textSize="16sp" />
29
30     <TextView
31         android:id="@+id/tv_share"
32         android:layout_width="wrap_content"
33         android:layout_height="wrap_content"
34         android:layout_margin="3dp"
35         android:drawablePadding="3dp"
36         android:drawableTop="@drawable/ic_share"
37         android:text="分享"
38         android:textColor="@color/black"
39         android:textSize="16sp" />
40
41     <TextView
42         android:id="@+id/tv_info"
43         android:layout_width="wrap_content"
44         android:layout_height="wrap_content"
45         android:layout_margin="3dp"
46         android:drawablePadding="3dp"
47         android:drawableTop="@drawable/ic_info"
48         android:text="信息"
49         android:textColor="@color/black"
50         android:textSize="16sp" />
51
52 </LinearLayout>

  anim:

popup_enter.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <set xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:shareInterpolator="false" >
 4
 5     <translate
 6         android:duration="400"
 7         android:fromXDelta="100%p"
 8         android:interpolator="@android:interpolator/overshoot"
 9         android:toXDelta="0" />
10
11     <alpha
12         android:duration="400"
13         android:fromAlpha="0.2"
14         android:toAlpha="1.0" />
15
16 </set>

popup_exit.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <set xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:shareInterpolator="false" >
 4
 5     <translate
 6         android:duration="400"
 7         android:fromXDelta="0"
 8         android:interpolator="@android:interpolator/anticipate"
 9         android:toXDelta="50%p" />
10
11     <alpha
12         android:duration="400"
13         android:fromAlpha="1.0"
14         android:toAlpha="0" />
15
16 </set>

code:

Activity.java

......

 1     //显示popupwindow
 2     protected void showPopup(View itemView) {
 3         if (mPopupWindow == null) {//只需要初始化一次弹窗
 4             //初始化弹窗布局
 5             View view = View.inflate(this, R.layout.popup_appinfo, null);
 6
 7             //设置按钮点击事件
 8             TextView tvUninstall = (TextView) view
 9                     .findViewById(R.id.tv_uninstall);
10             TextView tvOpen = (TextView) view.findViewById(R.id.tv_open);
11             TextView tvShare = (TextView) view.findViewById(R.id.tv_share);
12             TextView tvInfo = (TextView) view.findViewById(R.id.tv_info);
13             tvUninstall.setOnClickListener(this);
14             tvOpen.setOnClickListener(this);
15             tvShare.setOnClickListener(this);
16             tvInfo.setOnClickListener(this);
17
18             //初始化弹窗对象
19             ////参1:布局; 参2,3:宽高; 参4:获取焦点
20             mPopupWindow = new PopupWindow(view,
21                     WindowManager.LayoutParams.WRAP_CONTENT,
22                     WindowManager.LayoutParams.WRAP_CONTENT, true);
23
24             //设置背景;只有设置了背景,点击窗口外侧和返回键,弹窗才会消失
25             mPopupWindow.setBackgroundDrawable(new ColorDrawable());
26
27             //设置动画样式
28             mPopupWindow.setAnimationStyle(R.style.PopupAnim);
29         }
30
31         //显示在item正下方, 然后向上偏移一个item的高度
32         mPopupWindow.showAsDropDown(itemView, 60, -itemView.getHeight());
33     }

......

1 //弹窗消失

2 mPopupWindow.dismiss();

......

时间: 2024-08-07 10:10:49

popupwindow展示的相关文章

PopupWindow简单使用

PopupWindow简单使用 PopupWindow展示在屏幕的不同位置,比较简单 ! 下载地址:http://www.devstore.cn/code/info/771.html 运行截图:   热门源码下载: 高仿京东商城 Android快速开发不可或缺的11个工具类 Android快速开发框架LoonAndroid Android应用源码比较不错的新闻客户端 版权声明:本文为博主原创文章,未经博主允许不得转载.

android 集成系统分享和第三方分享案例

现在很多的应用基本都会集成分享这个功能,该功能包括系统分享(比如邮件,短信)和第三方分享(比如QQ和微信).其中有些公司会选择使用第三方的库来简化这些操作,加快开发,用的比较多的比如友盟社会化分享SDK,缺点就是自由度太低,因为可能你仅仅只是需要QQ和微信,其他的公司就会选择自己导入所需要的第三方SDK来自定义分享功能,自由度高,于是这篇博客主要来介绍后一种自定义分享功能的案例demo,下图是demo的运行效果: 具体分析一下源码,由于分享的内容根据需求的不同而不同,为了简单起见,我们就以最常用

在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案

一.前言 在某些情况下,我们需要一进入Activity就显示PopupWindow,比如常见的选择界面.但由于PopupWindow是依附于Activity的,如果Activity没有创建完成,Activity还没完全显示出来就显示PopupWindow的话,会出现异常现象. 二.问题复现 我在Activity的onCreate()方法中调用如下方法: public void show( ){ if( null != mPopupWindow ){ mPopupWindow.showAtLoca

Android:PopupWindow弹窗

两布局,一个当前布局页面和一个点击展示布局页面,主程序代码: public class MainActivity extends Activity { private PopupWindow pop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); //将layout的xml布局文件实例

Android—PopupWindow的简单使用

PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,这个Demo要实现的功能是,点击布局中的两个按钮,进而控制PopupWindow的显示与消失,代码中有详细的注释首先看一下效果展示: 在上代码之前,先总结一下PopupWindow的用法: 1:实例化PopupWindow的对象,三个参数分别对应:填充的布局文件.在当前Activity上所占的宽.高 PopupWindow popupWindow= new PopupWindow(contentView, Layou

PopupWindow在android中的使用分析

PopupWindow在android中的使用分析 PopupWindow是应用开发中经常用到的组建,使用它可以在当前屏幕的上层显示一个弹窗,同时也可以指定弹窗的位置以及背景色等特性,大大提高用户体验,那么这里我就以下几点介绍它的使用: 1 从指定的位置弹出这个窗口(淡入淡出动画) 2 从屏幕底部弹出这个窗口(带有透明度背景,自定义触摸其他位置自动关闭弹窗) 我的效果图如下: 下面直接上代码,具体如下所示(按开发顺序排列) 1 自定义一个继承自PopupWindow的类 publicclassP

Android中文API——PopupWindow

此文上半部分为本人翻译API文档,下半部分转自网友分享资料. API文档 继承树: java.lang.Object ? android.widget.PopupWindow 概述: popupWindow,顾名思义,用作在当前Activity前弹出一个界面,这个界面可以用来展示任何类型的View. 公共的构造器: PopupWindow() PopupWindow(Context context) PopupWindow(Context context, AttributeSet attrs)

popupwindow放置listview,并且使listview可以响应点击事件

最近在模仿微信的选择头像的功能,就是一个Popwindow里面是一个ListView,ListView是所有相册,用户点击里面的相册,那么那个相片展示的页面就会显示你选择的相册的相片 .刚开始发现里面的ListView不能获取点击事件,插入如下代码解决 popWinPlaylist.setFocusable(true); popWinPlaylist.update(); 随后发现popwindown以外的地方不能响应点击事件,其实你可以通过pw(PopupWindow对象).getContext

Android 自定义PopupWindow以及参数传递与返回

在这篇博客之前,还写了一篇关于PopupWindow,那篇主要是关于PopupWindow弹出位置的设置.以及选择PopupWindow布局后的监听.详情看Android popupwindow 示例程序一.接下来这篇主要是讲自定义PopupWindow以及参数传递与返回,我在里面写了一个listview来示例.接下来看代码,都有所注释. 本文项目资源下载: 一.MainActivity <span style="background-color: rgb(240, 240, 240);&