首先在上节中是使用dialog 实现的,(点击连接),现在我就讲些popupwindow 的实现,这个相对dialog比较简单,因为不用自定义dialog.
实现代码很简单如下:
代码片段:
public void showPopupWindow(int x, int y) {
layout = (LinearLayout) LayoutInflater.from(MainActivity.this).inflate(
R.layout.dialog, null);
listView = (ListView) layout.findViewById(R.id.lv_dialog);
listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
R.layout.text, R.id.tv_text, title));
popupWindow = new PopupWindow(MainActivity.this);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow
.setWidth(getWindowManager().getDefaultDisplay().getWidth() / 2);
popupWindow.setHeight(300);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setContentView(layout);
// showAsDropDown会把里面的view作为参照物,所以要那满屏幕parent
// popupWindow.showAsDropDown(findViewById(R.id.tv_title), x, 10);
popupWindow.showAtLocation(findViewById(R.id.main), Gravity.LEFT
| Gravity.TOP, x, y);//需要指定Gravity,默认情况是center.
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
button.setText(title[arg2]);
popupWindow.dismiss();
popupWindow = null;
}
});
}
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
button.getTop();
int y = button.getBottom() * 3 / 2;
int x = getWindowManager().getDefaultDisplay().getWidth() / 4;
showPopupWindow(x, y);
}
});
样子我就不贴了,和前面一章dialog显示的一样.
在这里遇到个小问题:int y = button.getBottom() * 3 / 2;这里获取的y坐标应该是button.getBottom();可是这样写popupwindow就显示位置不对了,在button中间,不知道为什么。
如果知道为什么了通知我一下,共同学习嘛,先谢谢了。
源码下载
分享到:
相关推荐
本教程将详细介绍如何利用PopupWindow来模拟新浪、腾讯等应用中的title弹框效果。 首先,理解PopupWindow的基本概念。PopupWindow是一个可以显示在任意视图之上的浮动窗口,它不依附于任何Activity,而是直接与某个...
在IT行业中,模拟新浪、腾讯title弹框效果是一种常见的用户界面设计技巧,它主要用于吸引用户的注意力并提供重要的信息提示。这种效果通常出现在新闻网站、社交媒体平台或者应用中,当有新消息、通知或活动时,会在...
在Android开发中,为了提供丰富的用户体验,我们常常需要创建各种各样的交互效果,其中之一就是模拟新浪和腾讯App中的弹框效果。这个项目标题为“android 仿新浪、腾讯弹框效果”,其主要涉及的技术点是`PopupWindow...
在Android开发中,PopupWindow是一个非常实用的组件,它允许我们创建浮动窗口,可以在Activity的任何位置显示。在实现特定的UI设计时,比如底部弹出菜单或对话框,我们可能会遇到需要添加底部灰色背景的需求。这个...
在Android开发中,`PopupWindow`是一个非常实用的组件,常用于实现各种弹出窗口的效果,比如下拉菜单、提示信息等。`PopupWindow`提供了丰富的自定义能力,包括动画效果,使得应用的交互体验更加生动有趣。本教程将...
在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种浮现在当前视图之上的窗口效果,常用于实现下拉菜单、提示框等。本篇将详细讲解如何利用PopupWindow实现一个具有泡泡效果,并且包含ListView的...
在Android开发中,PopupWindow是一个非常实用的组件,它可以用来创建各种形式的浮动窗口,比如在屏幕边缘弹出的菜单。本教程将详细介绍如何利用PopupWindow实现右侧、左侧和底部弹出菜单,以提供丰富的交互体验。 ...
在Android开发中,PopupWindow和Activity是两个非常重要的组件。PopupWindow通常用于创建浮动窗口,如下拉菜单、提示框等,而Activity则是应用程序的基本单元,承载着用户界面和业务逻辑。两者之间的数据传递是实现...
在Android开发中,PopupWindow是一种常用的UI组件,它可以在屏幕上的任意位置显示一个浮动窗口,通常用于实现类似下拉菜单、提示框等效果。在这个场景中,我们要实现的是从屏幕底部弹出的PopupWindow,并带有滑动...
在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一个浮动的窗口,通常用于在界面中弹出一些临时性的交互元素。本示例程序"Android PopupWindow 示例程序一"着重展示了如何创建并控制PopupWindow使其...
在Android开发中,PopupWindow是一种常用的轻量级弹窗组件,用于在屏幕任意位置显示一个浮层视图。本文将详细讲解如何实现标题所描述的功能:“popupwindow弹窗实现点击按钮,下方弹出popwindow,并且只是按钮下方有...
在Android开发中,`PopupWindow`是一个非常重要的组件,它允许开发者在主界面之上显示一个临时的、可定制的窗口,通常用于实现各种形式的下拉菜单、提示信息或者简单的对话框效果。在这个"Android PopupWindow的Demo...
本文将详细介绍如何使用`PopupWindow`在Android应用中模仿微信右上角的弹出菜单效果。 首先,我们需要理解`PopupWindow`的基本用法。`PopupWindow` 是一个可以在屏幕任意位置显示的窗口,它不依附于任何Activity,...
学习这个示例可以帮助开发者更好地理解和运用PopupWindow,快速实现类似的底部弹框效果。 总的来说,PopupWindow是Android开发中实现弹出窗口的一种灵活方式,尤其适合创建轻量级的对话框。通过掌握其基本用法和...
在Android开发中,`PopupWindow`是一个非常实用的组件,它可以用来实现各种弹窗效果,如下拉菜单、提示信息等。在这个项目中,我们将详细探讨如何使用`PopupWindow`来模仿微信应用中的弹出效果,使用户界面更加生动...
在Android开发中,PopupWindow是实现浮动窗口效果的重要组件,常用于创建弹出式菜单、提示信息等。本文将深入探讨如何实现PopupWindow的背景半透明以及设置其最大高度。 首先,我们来看如何让PopupWindow的背景变得...
在Android开发中,`PopupWindow`是一个非常实用的组件,它可以用来创建弹出式窗口,类似于下拉菜单、提示框或者浮动视图。这个组件在许多场景下都非常有用,例如在主界面之上显示附加信息或者提供附加操作。下面将...
Android PopupWindow 实现遮罩层效果 Android PopupWindow 是 Android 系统中的一种常用对话框组件,用于显示弹出式对话框,可以实现各种交互效果。今天,我们将详细介绍如何使用 Android PopupWindow 实现遮罩层...
在Android开发中,PopupWindow是一种常用的UI组件,它可以在屏幕上的任意位置弹出一个窗口,通常用于显示一些临时的信息或者菜单。在这个特定的场景中,我们关注的是如何在PopupWindow中实现图片的缩放功能。这涉及...
在Android应用开发中,PopupWindow是一个非常常用的组件,它能够以弹出窗口的形式展示内容,通常用于实现下拉菜单、浮动提示等效果。本篇我们将深入探讨如何创建一个具有底部弹出并带有炫酷布局缩放效果的...