自定义popWindow

来源:互联网 发布:影梭本地端口 编辑:程序博客网 时间:2024/06/11 09:03

popWindow显示有两种,相对某空件和自定义位置。

下面是相对于某控件,即在标题栏下弹出popwindow:

/**     * 创建PopupWindow     */    protected void initPopuptWindow() {        view_pop = LayoutInflater.from(this).inflate(R.layout.pop_view, null);        WindowManager windowManager = getWindowManager();        Display display = windowManager.getDefaultDisplay();        popupWindow = new PopupWindow(view_pop, display.getWidth(),                display.getHeight(), true);        // 设置动画效果        popupWindow.setAnimationStyle(R.style.PopupAnimation);        popupWindow.showAsDropDown(ll_title);// 在标题栏正下方显示        WindowManager.LayoutParams params = getWindow().getAttributes();        params.alpha = 0.7f;        // getWindow().setAttributes(params);        // 点击其他地方消失        view_pop.setOnTouchListener(new OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                // TODO Auto-generated method stub                closePopupWindow();                return false;            }        });    }    /***     * 获取PopupWindow实例     */    private void getPopupWindow() {        if (null != popupWindow) {            closePopupWindow();            return;        } else {            initPopuptWindow();        }    }    /**     * 关闭窗口     */    private void closePopupWindow() {        if (popupWindow != null && popupWindow.isShowing()) {            popupWindow.dismiss();            popupWindow = null;            WindowManager.LayoutParams params = getWindow().getAttributes();            params.alpha = 1f;            getWindow().setAttributes(params);        }    }}

style中建立:PopupAnimation样式

 <!-- popWindow 进入退出样式 -->    <style name="PopupAnimation" mce_bogus="1" parent="android:Animation">        <item name="android:windowEnterAnimation">@anim/push_top_in</item>        <item name="android:windowExitAnimation">@anim/push_top_out</item>    </style>

push_top_in.xml:

<?xml version="1.0" encoding="utf-8"?><!-- 上下滑入式 --><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="200"        android:fromYDelta="-50%p"        android:toYDelta="0" />   </set>

push_top_out.xml:

0 0
原创粉丝点击