popupwindow的用法简介

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值