PopupWindow设置动画效果


创建popupwindow的方法

Button menu;
private void showPopupWindow() {  
        //设置contentView
	float density = DensityUtil.Obtain(activity).density;
        View contentView = LayoutInflater.from(ActivityHomeImpl.this).inflate(R.layout.activity_home_menu, null);
        contentView.setBackgroundColor(0xff003333);
        mPopWindow = new PopupWindow(contentView, -2, DensityUtil.round(50* density), true);//DensityUtil.round(50* density)
        mPopWindow.setContentView(contentView);
        //设置各个控件的点击响应  
        ((Button)contentView.findViewById(R.id.btn1)).setOnClickListener(this);
        ((Button)contentView.findViewById(R.id.btn2)).setOnClickListener(this);
        ((Button)contentView.findViewById(R.id.btn3)).setOnClickListener(this);
        ((Button)contentView.findViewById(R.id.btn4)).setOnClickListener(this);
        ((Button)contentView.findViewById(R.id.btn5)).setOnClickListener(this);
        ((Button)contentView.findViewById(R.id.btn6)).setOnClickListener(this);
        mPopWindow.setTouchable(true);
        mPopWindow.setOutsideTouchable(true);
        // 实例化一个ColorDrawable颜色为半透明
 	//ColorDrawable dw = new ColorDrawable(0xd0000000);
 	//mPopWindow.setBackgroundDrawable(dw);
 	// 设置背景颜色变暗  
        WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.alpha = 0.7f;
        getWindow().setAttributes(lp);
        mPopWindow.setOnDismissListener(new OnDismissListener() {

            @Override
            public void onDismiss() {
                WindowManager.LayoutParams lp = getWindow().getAttributes();
                lp.alpha = 1f;
                getWindow().setAttributes(lp);
                mPopWindow.dismiss();
            }
        });
 	// 设置popWindow的显示和消失动画
        mPopWindow.setAnimationStyle(R.style.contextMenuAnim);
        mPopWindow.showAsDropDown(menu);
}

popupwindow 动画


activity的Theme设置

context_menu_enter.xml

<?xml version="1.0" encoding="utf-8"?>


    


context_menu_exit.xml

<?xml version="1.0" encoding="utf-8"?>


    


布局文件activity_home_menu.xml

<?xml version="1.0" encoding="utf-8"?>


    

        

相关