美文网首页
PopupWindow

PopupWindow

作者: HOLLE_karry | 来源:发表于2020-03-26 10:23 被阅读0次

    1.步骤

    ①创建PopupWindow布局
    ②创建PopupWindow对象,用三个参数的构造
    ③PopupWindow四种显示方式
    ④聚焦:EditText能输入内容
    ⑤点击范围外关闭PopupWindow
    ⑥全屏阴影,PopupWindow点击消失监听
    ⑦进出场动画

     private void showPoP() {
            View view = LayoutInflater.from(this).inflate(R.layout.layout_pop, null);
            PopupWindow window = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
            //点击范围外关闭
            window.setBackgroundDrawable(new ColorDrawable());
            window.setBackgroundDrawable(new BitmapDrawable());
            window.setOutsideTouchable(true);
            //进出场动画
            window.setAnimationStyle(R.style.pop_animation_style);
            //聚焦
            window.setFocusable(true);
            //四种显示方式
            window.showAsDropDown(button);
            window.showAsDropDown(button,200,200);
            window.showAsDropDown(cl, Gravity.BOTTOM,0,0);
            window.showAtLocation(rv, Gravity.BOTTOM, 0, 0);
            //设置阴影
            setBackGroundAlpha(0.5f);
            //PopupWindow点击消失监听
            window.setOnDismissListener(new PopupWindow.OnDismissListener() {
                @Override
                public void onDismiss() {
                    setBackGroundAlpha(1f);//0.0-1  从完全透明  到  不透明
                }
            });
        }
        //设置阴影
        private void setBackGroundAlpha(float alpha){
            WindowManager.LayoutParams attributes = getWindow().getAttributes();
            attributes.alpha=alpha;
            getWindow().setAttributes(attributes);
        }
    

    style:

    <style name="pop_animation_style">
            <item name="android:windowEnterAnimation">@anim/enter</item>
            <item name="android:windowExitAnimation">@anim/exit</item>
    </style>
    

    anim_exit.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="1500">
        <translate
            android:fromXDelta="0"
            android:fromYDelta="0"
            android:toXDelta="100%p"
            android:toYDelta="100%p" />
        <alpha
            android:fromAlpha="1.0"
            android:toAlpha="0" />
    </set>
    

    anim_enter.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="1500">
        <translate
            android:fromXDelta="100%p"
            android:fromYDelta="100%p"
            android:toXDelta="0"
            android:toYDelta="0" />
        <alpha
            android:fromAlpha="0"
            android:toAlpha="1.0" />
    </set>
    

    相关文章

      网友评论

          本文标题:PopupWindow

          本文链接:https://www.haomeiwen.com/subject/xdyquhtx.html