码迷,mamicode.com
首页 > Windows程序 > 详细

PopupWindow整理

时间:2015-05-19 10:57:42      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:android   笔记   popupwindow   

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):相对于父控件的位置可设置偏移或无偏移

 

本文出自 “积,积少成多” 博客,请务必保留此出处http://loveandroid.blog.51cto.com/8810673/1652639

PopupWindow整理

标签:android   笔记   popupwindow   

原文地址:http://loveandroid.blog.51cto.com/8810673/1652639

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!