• 为PopupWindow设置弹出动画效果


    关键代码:
    LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    View menuView = (View)mLayoutInflater.inflate(R.layout.alert_dialog_menu_layout_new, null, true);//弹出窗口包含的视图
    popupWindow = new PopupWindow(menuView, LayoutParams.FILL_PARENT,238, true);//创建弹出窗口,指定大小 

      popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_style_alert_dialog_background));//设置弹出窗口的背景
    popupWindow.setAnimationStyle(R.style.PopupAnimation);//设置窗口显示的动画效果
    popupWindow.showAtLocation(findViewById(R.id.parent), Gravity.BOTTOM, 0, 0);//设置窗口显示的位置
    popupWindow.update();

    Style.xml文件:
        <style name="PopupAnimation" parent="android:Animation">
            <item name="android:windowEnterAnimation">@anim/menu_up</item>
        </style>
    menu_up.xml文件:
    <set  xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:duration="500" android:fromXDelta="0.0" android:toXDelta="0.0" android:fromYDelta="100%" android:toYDelta="50%" />
    </set>

    > 首先定义好,显示和消失的动画xml;

      eg:

    <!-- 显示动画-->

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

    <set xmlns:android="http://schemas.android.com/apk/res/android">

    <scale  android:interpolator="@android:anim/accelerate_decelerate_interpolator"

              android:fromXScale="0.0"

              android:toXScale="1.0"

              android:fromYScale="0.0"

              android:toYScale="1.0"

              android:pivotX="50%"

              android:pivotY="50%"

              android:fillAfter="false"

              android:duration="200" >

    </scale>

    </set>

    <!-- 消失动画-->

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

    <set xmlns:android="http://schemas.android.com/apk/res/android">

     <!-- 透明度渐变-->

     <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="200" />

    </set>


    2>  popupwindow 的显示和消失动画,是通过setAnimationStyle(int id) 的方法,来设置动画的。 这个方法的参数是,一个style 的id ;

    所以需要一个 动画style;

    eg:

      <!-- popwidnow 显示消失动画-->

     <style name="mypopwindow_anim_style">

      <item name="android:windowEnterAnimation">@anim/popshow_anim</item>        <!-- 指定显示的动画xml  -->

       <item name="android:windowExitAnimation">@anim/pophidden_anim</item>       <!-- 指定消失的动画xml  -->

     </style>

    3> 在代码中,添加popupwindow 动画;

      eg:

      PopupWindow myimgpopupwindow = new PopupWindow( View (要显示的view对象), LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);//创建一个PopupWindow窗体

      myimgpopupwindow.setAnimationStyle(R.style.mypopwindow_anim_style); //设置动画

      myimgpopupwindow.showAtLocation( View( 参照的view对象), Gravity.CENTER, 0, 0);     //居中来显示

    好了,1,2,3, 搞定!这下,你是不是也会给popupwindow设置显示消失动画了?  Come on  ! 赶快试试吧!*~*

  • 相关阅读:
    设计模式:Prototype 原型模式
    [C++STDlib基础]关于单字符的操作——C++标准库头文件<cctype>
    Android开发之简单的电子相册实现
    autotools入门笔记(二)——创建和使用静态库、动态库
    Dreamer 框架 比Struts2 更加灵活
    Redis集群明细文档
    【Servlet3.0新特性】第03节_文件上传
    POJ 3264 Balanced Lineup
    利用jquery对ajax操作,详解原理(附代码)
    C语言实现修改文本文件中的特定行
  • 原文地址:https://www.cnblogs.com/jiezzy/p/2490304.html
Copyright © 2020-2023  润新知