PopupWindow

来源:互联网 发布:php header跳转404 编辑:程序博客网 时间:2024/06/05 18:51

添加动画效果要在style.xml中定义
PopupWindow的动画效果是,补间动画的缩放效果

 <style name="mypopwindow_anim_style">        <item name="android:windowEnterAnimation">@anim/popshow_anim</item>        <item name="android:windowExitAnimation">@anim/pophidden_anim</item>    </style>

在res文件夹下,创建一个文件夹anim,创建两个xml文件
popshow_anim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:fillAfter="true"    android:duration="1000"    >    <scale        android:fromXScale="1.0"        android:toXScale="1.0"        android:fromYScale="0.0"        android:toYScale="1.0"        android:pivotX="0%"        android:pivotY="100%"        android:fillAfter="false"        android:duration="400" ></scale></set>

pophidden_anim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="1000"    android:fillAfter="true"    >    <scale android:fromXScale="1.0"        android:toXScale="1.0"        android:fromYScale="1.0"        android:toYScale="0.0"        android:pivotX="0%"        android:pivotY="100%"        android:fillAfter="false"        android:duration="400"></scale></set>

调用showPopwindow()方法

 /**     * 显示popupWindow     */    private void showPopwindow() {        // 利用layoutInflater获得View        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);        //找到自定义的布局        View view = inflater.inflate(R.layout.window_alter, null);        window = new PopupWindow(                WindowManager.LayoutParams.MATCH_PARENT,                WindowManager.LayoutParams.MATCH_PARENT);        //把自定义的布局加到PopupWindow上        window.setContentView(view);         // 设置popWindow弹出窗体可点击,这句话必须添加,并且是true        window.setFocusable(true);        // 设置允许在外点击消失        window.setOutsideTouchable(true);        // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景        window.setBackgroundDrawable(new BitmapDrawable());        // 实例化一个ColorDrawable颜色为半透明        ColorDrawable dw = new ColorDrawable(0xb0000000);        window.setBackgroundDrawable(dw);        // 设置popWindow的显示和消失动画        window.setAnimationStyle(R.style.mypopwindow_anim_style);        // 在底部显示       /* window.showAtLocation(this.findViewById(R.id.vp_findpaitent_viewpager),                Gravity.TOP, 0, 260);*/        window.showAsDropDown(this.findViewById(R.id.include_find_message_pager) , 0, 0);        //popWindow消失监听方法        window.setOnDismissListener(new PopupWindow.OnDismissListener() {            @Override            public void onDismiss() {                System.out.println("popWindow消失");            }        });    }
0 0