Android 有入场动画的Popuwindow

privatePopupWindow pw;


pw=new PopupWindow(view,
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        TextView tv1=(TextView) view.findViewById(R.id.text);
        tv1.setOnClickListener(this);
        pw.setBackgroundDrawable(new ColorDrawable());
        pw.setOutsideTouchable(true);//设置点击外部的时候,窗口也可以消失
      pw.setFocusable(true);//设置焦点
//    pw.setTouchable(true);//设置是否可以触摸
//    pw.setTouchInterceptor(new OnTouchListener() {
//       @Override
//       public boolean onTouch(View v, MotionEvent event) {
//          if(pw!=null && pw.isShowing()){
//             pw.dismiss();
//             pw=null;
//          }
//          return false;
//       }
//    });


设置显示和显示方法

pw.showAtLocation(view, Gravity.BOTTOM, 0, 0);

设置消失

pw.dismiss();


设置Popuwindow的效果:
        pw.setAnimationStyle(R.style.popwin_anim_style);

在style.xml中写:

<style name="popwin_anim_style">
    <item name="android:windowEnterAnimation">@anim/menushowitem>
    <item name="android:windowExitAnimation">@anim/menuhideitem>
style>

menushow.xml
xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="300"
        android:toYDelta="0"
        android:duration="200" />
set>
 
  
 
  
menuhide
xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="0"
    android:toXDelta="0"
    android:fromYDelta="0"
    android:toYDelta="300"
    android:duration="200" />
set>



你可能感兴趣的:(Android)