puporwindow

//Java代码private void showPopupWindow(View view) {

        // 一个自定义的布局,作为显示的内容
        View contentView = LayoutInflater.from(getActivity()).inflate(
                R.layout.layout_popwindow1, null);

        final PopupWindow popupWindow = new PopupWindow(contentView,
                ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);

        popupWindow.setTouchable(true);
        popupWindow.setAnimationStyle(R.style.AnimationPreview);

        popupWindow.setTouchInterceptor(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                Log.i("mengdd", "onTouch : ");

                return false;
                // 这里如果返回true的话,touch事件将被拦截
                // 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
            }
        });

        // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
        // 我觉得这里是API的一个bug
        popupWindow.setBackgroundDrawable(getResources().getDrawable(
                R.drawable.whitebg));

        // 设置好参数之后再show
        //显示popupWindow在界面的位置
        popupWindow.showAtLocation(MusicPlayer_Fragment.this.root, Gravity.BOTTOM| Gravity.CENTER_HORIZONTAL, 0, 0);
    }

  //Sytle样式
    style name="AnimationPreview" parent="android:Animation">        <item name="android:windowEnterAnimation">@anim/pop_enter_anim</item>         <item name="android:windowExitAnimation">@anim/pop_exit_anim</item>    </style>
  //在anim下建立动画 
名字为:pop_enter_anim.xml
 
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate        android:duration="200"        android:fromYDelta="100%p"        android:toYDelta="0" />    <alpha        android:duration="200"        android:fromAlpha="0.0"        android:toAlpha="1.0" /></set>

//名字为
pop_exit_anim

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="200"        android:fromYDelta="0"        android:toYDelta="50%p" />    <alpha        android:duration="200"        android:fromAlpha="1.0"        android:toAlpha="0.0" /></set>
				
时间: 2024-08-06 00:21:50

puporwindow的相关文章