一直以来都觉得 Android 中的 PopupWindow 不好用.主要有以下两点:1.宽度不好控制2.位置不好控制 今天单说第1点. 由于应用有好几种国家的语言,加上各设备宣染效果不完全一样,对popupWindow宽度肯定不能写固定值,一般用系统提供的WRAP_CONTENT,但显示的效果往往不是预期的. 怎样才能正确显示呢,我们可以根据内容来计算宽度(找所有内容中最长的一个),代码如下: private int measureContentWidth(ListAdapter listAd…
Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的. PopupWindow使用Demo 这个类的使用,不再过多解释,直接上代码吧. 比如弹出框的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&q…
在Android开发中,需要用到PopupWindow这个类.在初始化完成,显示之前,都需要获得这个对象的width,height去计算popupWindow弹出的位置. 这个时候会发现取得的width和height都是-2:使用popupWindow.getContentView().getMeasuredWidth()和popupWindow.getContentView().getMeasuredHeight()取得的值都是0.如下面的代码: activity_main.xml <?xml…
Android PopupWindow的使用技巧 PopupWindow是Android上自定义弹出窗口,使用起来很方便. PopupWindow的构造函数为 public PopupWindow(View contentView, int width, int height, boolean focusable) contentView为要显示的view,width和height为宽和高,值为像素值,也可以是MATCHT_PARENT和WRAP_CONTENT. focusable为是否可以获…
1. popupWindow 设置大小: popupWindow = new  PopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT): 2.showAtLocation 方法是将popupWindow显示位置 : popupWindow.showAtLocation(v, Gravity.CENTER_HORIZONTAL,                       …
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activity 作为容器,并于其生命周期联系在一起.在Activity 还没有初始化完成时,此时我们调用 PopupWindow Dialog 的show()方法就会抛出异常: throw new WindowManager.BadTokenException("Unable to add window --…
1.PopupWindow的特点 借用Google官方的说法: "A popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity." 也就是说.popupwindow是activity上方的一个悬浮容器.它能够显示随意的视图View,非常霸气的样子. 以下看一…
先看效果图: BasePopupWindowWithMask.class package com.example.popupwindowwithmask; import android.content.Context; import android.graphics.PixelFormat; import android.graphics.drawable.ColorDrawable; import android.os.IBinder; import android.view.KeyEvent…
说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题,作为程序员也没有办法,只能去想办法去补救. 下面是我在使用过程中发现的关于PopupWindow的几个痛点: 痛点一:不设置背景就不能响应返回键和点击外部消失的,这个我已经有一篇文章进行分析过http://www.cnblogs.com/popfisher/p/5608717.html,这个我认为就…
注:点空白或菜单外隐藏popupwindow菜单: 但是,若点击有点击事件的组件则要再写代码手动隐藏: @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub if (mMenuPPW!=null){ if (mMenuPPW.isShowing()) mMenuPPW.dismiss(); } return super.onTouchEvent(event); }…
PopupWindow就是一个可以显示在当前界面上的浮动容器,它可以用来显示任意一个View,同时还可以指定显示的位置. 下面写一个显示下拉的例子: PopupWindow mpopupWindow;  private void showPop() {  // 要填充到PopupWindow里的View(自己写的随便的一个布局)  View view = View.inflate(context, R.layout.popup, null);  // 上面view中的ListView控件,因为是…
最近在做一个社交类APP时,希望用户在注册时根据地区来选择自己所在的学校,由于用户手动输入学校,可能会出现各种问题,不利于后面对用户信息的统计.于是决定在客户端做好设置,用户只要根据地区来选择就好.第一想法就是使用PopupWindow,用弹框的方式让用户来选择.让实现的效果如下: 下面就来讲一下是如何实现的(数据是从网络获取的,JSON解析使用的是Gson,网络库用的是Volley) 工程结构: 1.创建一个布局文件:view_select_province_list.xml,主要包括一个Te…
本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计.弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andr…
一直想用一下PopupWindow,就是苦于没有demo,自己去研究有太懒,刚好最近研究推送,下载了一个腾讯信鸽的demo,里面用到了一个PopupWindow,效果还不错,弄下来记录一下: 1.核心java代码如下: View v = LayoutInflater.from(this).inflate(R.layout.menu_item, null); //加载popupwindow的自定义view final PopupWindow pw = new PopupWindow(v, Layo…
初学Android,引用了这篇文章的代码 http://www.cnblogs.com/jiezzy/archive/2012/08/15/2640584.html 使用PopupWindow制作自定义的菜单 先是Layout文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an…
项目中,我须要PopupWindow的时候特别多,这个东西也特别的好使,所以我今天给大家写一款PopupWindow 仿微信弹出效果.这样大家直接拿到项目里就能够用了! 首先让我们先看效果: 那么我首先先看下布局代码很easy:例如以下 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pop_layout" android:lay…
转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PARENT/FILL_PARENT属性的原理说明 xml布局文件解析成View树的流程分析. 希望对大家能有帮助.- - 分析版本基于Android 2.3 . 1.WRAP_CONTENT.MATCH_PARENT/FILL_PARENT 初入Android殿堂的同学们,对这三个属性一定又爱又恨.爱的是使…
package com.tq.mbaexam.view; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.LayoutInflater;…
经过多番測试实践,实现了popupwindow 弹出在指定控件的下方.代码上有凝视.有须要注意的地方.popupwindow 有自已的布局,里面控件的监听实现都有.接下来看代码实现. 项目资源下载:点击这里 TestPopwindow2.class package com.example.popwindowdemo; import android.app.ActionBar.LayoutParams; import android.app.Activity; import android.con…
PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,这个Demo要实现的功能是,点击布局中的两个按钮,进而控制PopupWindow的显示与消失,代码中有详细的注释首先看一下效果展示: 在上代码之前,先总结一下PopupWindow的用法: :实例化PopupWindow的对象,三个参数分别对应:填充的布局文件.在当前Activity上所占的宽.高 PopupWindow popupWindow= new PopupWindow(contentView, Layout…
前几天要用到PopupWindow,一时竟想不起来怎么用,赶紧上网查了查,自己写了个demo,并在此记录一下PopupWindow的用法. 使用场景 PopupWindow,顾名思义,就是弹窗,在很多场景下都可以见到它.例如ActionBar/Toolbar的选项弹窗,一组选项的容器,或者列表等集合的窗口等等. 基本用法 使用PopupWindow很简单,可以总结为三个步骤: 创建PopupWindow对象实例: 设置背景.注册事件监听器和添加动画: 显示PopupWindow. 其中,第二步是…
下午做项目的时候,碰到页面布局需要使用RecycleView加HeaderView,本以为很简单东西,却有一个小小的坑:HeaderView布局的宽度不能撑满屏幕! 先看下出现问题的图: 天了噜,我写的布局代码可不是这样的,包括在as上面预览的时候,都是正常的,为何安装运行后变成了这样子. 先看下一开始写的布局代码和预览效果: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an…
最近项目中好多地方用到popupwindow,感觉这个控件还是非常重要的.所以把使用心得总结下,废话不多说,直接上代码. public class MainActivity extends Activity { /** * 选择按钮 */ private Button mSelectTypeBtn; /** * 显示选择的内容 */ private TextView mSelectedType; private PopupWindow mPopupWindow; @Override protec…
说到PopupWindow,应该都会有种熟悉的感觉,使用起来也很简单 // 一个自定义的布局,作为显示的内容 Context context = null; // 真实环境中要赋值 int layoutId = 0; // 布局ID View contentView = LayoutInflater.from(context).inflate(layoutId, null); final PopupWindow popupWindow = new PopupWindow(contentView,…
如果直接用android的videoview.他是不允许你随意的修改宽度和高度的,所以我们要重写videoview! package com.hysmarthotel.view; import android.content.Context;import android.util.AttributeSet;import android.widget.VideoView; public class MyVideoView extends VideoView{ public MyVideoView(…
背景介绍: 到目前为止,android已经从1.5发展到目前的3.2,我们在写一个应用的时候,最常用到得就是获取屏幕高度,宽度,以及status bar的高度. 然而android系统变化太快了,从开始的手机操作系统到目前的3.2 平板电脑系统,在获取这些数据的时候也发生了很大的变化. 值得我们重视,否则会有很多错误发生. 问题分析及解决方案: 1. android 1.6 到 android 2.x 这是android手机操作系统,从1.6到2.x都有着统一的获取方法. 直接利用android…
在项目中使用Popupwindow pop=new Popupwindow();在2.3版本报 异常信息: Exception: null 堆栈信息: android.widget.PopupWindow.setContentView(PopupWindow.java:384) android.widget.PopupWindow.<init>(PopupWindow.java:286) android.widget.PopupWindow.<init>(PopupWindow.j…
版本号:1.0 日期:2014.4.29 版权:© 2014 kince 转载注明出处 关于View的拖动大家应该比較了解了,比方对一个控件IamgeView拖动,或者一个视图View拖动,实现方式也非常easy,继承OnTouchListener接口,然后重写onTouch方法,在触屏事件进行处理就可以.可是Popupwindow怎样实现拖动呢,我们都知道它和普通的View不一样,由于它不是继承于View类的,可是它的实现却是和View密切相关的,由于我们都知道Android视图的显示都是由V…
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l1YW41MTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and…