1.简单使用
创新互联公司是一家集网站建设,鲅鱼圈企业网站建设,鲅鱼圈品牌网站建设,网站定制,鲅鱼圈网站建设报价,网络营销,网络优化,鲅鱼圈网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。使用步骤:
①.创建PopupWindow对象
②.调用popupWindow.showAsDropDown(View v)|popupWindow.showAsLocation(),控制显示位置
③.点击popupwindow以外区域 popupwindow自动消失
方法一重写onTouchEvent(这种方法可以处理popupwindows dimiss的时候一些其他的操作,比如让其他控件的隐藏,消失等):
代码如下:
//focusable要为false(不设置默认的就是False);
popupWindow.setFocusable(false);
//OnTouchEvent代表的是Activity 获得事件(即为PopupWindow之外)
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
}
return super.onTouchEvent(event);
}
方法二:设置popupWindow参数(这种方法只能让自身消失,不能够提供其他伴随操作,比如让其他控件的隐藏,消失等)
// 使其聚焦
mPopupWindow.setFocusable(true);
// 设置允许在外点击消失
mPopupWindow.setOutsideTouchable(true);
//刷新状态
mPopupWindow.update();
//点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件 变化等操作
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
2.用setAnimationStyle来设置popwindow显示消失的动画效果
Ps:个人感觉和大多数控件设置动画类似,比如Imageview
实现步骤:
①.在res/values/style.xml中添加
android:windowEnterAnimation表示进入窗口动画
android:windowExitAnimation表示窗口退出动画
②.在res/anim文件夹下声明所需进入动画
③.在java代码中设置动画
popupWindow.setAnimationStyle(R.style.PopupAnimation);
3.Activity充当PopupWindow
参考资料:
http://www.cnblogs.com/joey-home/archive/2012/07/02/2573855.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0303/956.html
http://www.cnblogs.com/winxiang/archive/2012/11/20/2778729.html?
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0702/1627.html
附:
1.关键方法
①.显示PopupWindow:
showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移
showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移
showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置,可设置偏移或无偏移
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。