popuWindow相关知识

今天做了个pupoWindow出现了很多问题。popuwindow 是线程阻塞的堆话框!默认弹出popuwindow后点击周围是没办法让popuwindow消失的,但是可以在 Activity里重写onTouchEnent解决:

@Override  
public boolean onTouchEvent(MotionEvent event) {    
if (popup != null && popup.isShowing()) {   
  popup.dismiss();   
  popup= null;  
  }   
 return super.onTouchEvent(event);  
}  



1创建popuwindow有一堆构造方法。

2.显示方法两种形式:

 showAtLocation()显示在指定位置,有两个方法重载:


 


  showAsDropDown()显示在一个参照物View的周围,有三个方法重载:




showAsDropDown这个方法相当于 Dialog.show()方法,  如果是先show了, 然后其他属性即使是设置了,也起不到应有的作用. 



1> 首先定义好,显示和消失的动画xml;

          android:fromXScale="0.0"

          android:toXScale="1.0"

          android:fromYScale="0.0"

          android:toYScale="1.0"

          android:pivotX="50%"

          android:pivotY="50%"

          android:fillAfter="false"

          android:duration="200" >

 

 

 

 

 

 

 

2>  popupwindow 的显示和消失动画,是通过setAnimationStyle(int id) 的方法,来设置动画的。 这个方法的参数是,一个style 的id ;

所以需要一个 动画style;

 

 


3> 在代码中,添加popupwindow 动画;

PopupWindow myimgpopupwindow = new PopupWindow( View (要显示的view对象), LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

  myimgpopupwindow.setAnimationStyle(R.style.mypopwindow_anim_style); //设置动画

 

  myimgpopupwindow.showAtLocation( View( 参照的view对象), Gravity.CENTER, 0, 0);     //居中来显示






你可能感兴趣的:(安卓开发)