Android 有入场动画的Popuwindow

本文详细介绍了如何使用Android中的PopupWindow组件来创建弹出窗口。包括初始化PopupWindow、设置背景、焦点、触摸事件以及动画效果等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

privatePopupWindow pw;


pw=new PopupWindow(view,
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        TextView tv1=(TextView) view.findViewById(R.id.text);
        tv1.setOnClickListener(this);
        pw.setBackgroundDrawable(new ColorDrawable());
        pw.setOutsideTouchable(true);//设置点击外部的时候,窗口也可以消失
////      pw.setFocusable(true);//设置焦点
//    pw.setTouchable(true);//设置是否可以触摸
//    pw.setTouchInterceptor(new OnTouchListener() {
//       @Override
//       public boolean onTouch(View v, MotionEvent event) {
//          if(pw!=null && pw.isShowing()){
//             pw.dismiss();
//             pw=null;
//          }
//          return false;
//       }
//    });


设置显示和显示方法

pw.showAtLocation(view, Gravity.BOTTOM, 0, 0);

设置消失

pw.dismiss();


设置Popuwindow的效果:
        pw.setAnimationStyle(R.style.popwin_anim_style);

在style.xml中写:

<style name="popwin_anim_style">
    <item name="android:windowEnterAnimation">@anim/menushow</item>
    <item name="android:windowExitAnimation">@anim/menuhide</item>
</style>

menushow.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="300"
        android:toYDelta="0"
        android:duration="200" />
</set>
menuhide
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="0"
    android:toXDelta="0"
    android:fromYDelta="0"
    android:toYDelta="300"
    android:duration="200" />
</set>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值