View view = View.inflate(getActivity(),R.layout.activity_main,null);// mPopup = new PopupWindow(mInflate, LinearLayout.LayoutParams.MATCH_PARENT, 600, true); //第一个参数是一个view,2 是宽度 , 3 是 高度 4 是是否获取焦点 PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, 600, true); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE)); popupWindow.setOutsideTouchable(true);//设置外面是否可点击,如果popupWindow有给的背景,点外面是dismiss, // 没有给背景外面是点不了的,但是如果系统是Android版本23 Android 6.0以上是可以不设背景点外面也会dismiss popupWindow.setFocusable(true);//设置是否获取焦点 //设置动画,在styles里面添加 // <style name="AnimationPreview">// <item name="android:windowEnterAnimation">@anim/fade_in</item>// <item name="android:windowExitAnimation">@anim/fade_out</item>// </style> //在res/anim/创建两个文件fade_in,是出现的动画,fade_out,是消失的动画 popupWindow.setAnimationStyle(R.style.AnimationPreview); setAlpha(0.5f);//设置popupwindow背后界面透明一点,暗黑一点 popupWindow.showAtLocation(mPhoneNumber, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);//设置出现的具体位置,现在是设置的是在窗口底下// popupWindow.showAsDropDown(view);//这个是设置显示在某个控件底下 popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { setAlpha(1);//当popupwindow消失时就不设置透明了 } }); //给popupwindow出现的窗口设置透明度,并不会影响popupwindow的透明度,可以设置成一个方法,出现的时候设置窗口透明0.5f } private void setAlpha(float value) { WindowManager.LayoutParams lp = this.getWindow().getAttributes(); lp.alpha = value; getWindow().setAttributes(lp); }出现的动画效果代码示例:<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="1000" android:fromAlpha="0" android:toAlpha="1"></alpha> <translate android:duration="1000" android:fromXDelta="100%" android:fromYDelta="100%" android:toXDelta="0" android:toYDelta="0"/> </set>消失的动画效果代码示例:<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="1000" android:fromAlpha="0.6" android:toAlpha="0"></alpha> <translate android:fromXDelta="0" android:toXDelta="100%" android:fromYDelta="0" android:toYDelta="100%" android:duration="1000" /> </set>
popupwindow的用法简介
最新推荐文章于 2020-11-25 14:42:28 发布