• Activity的退出和進入效果


      看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了。设置Dialog首先通过 getWindow()方法获取它的窗口,然后通过getAttributes()方法获得window的 WindowManager.LayoutParams lp, lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了。问题是这个animation应该怎么写呢,研究发现,窗口进入和退出的效果分别是通过 @android:windowEnterAnimation和@android:windowExitAnimation两个item设定的,比如进入 时的anim是@anim/dialog_enter, 退出的是@anim/dialog_exit, 则声明一个style为:

    <style name="mydialog">

        <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>

       <item name="@android:windowExitAnimation">@anim/dialog_exit</item>

    </style>

    然后把这个style的id传给lp.windowAnimations就行了。

         Activity的进入和退出效果可以通过 @android:activityOpenEnterAnimation,@android:activityOpenExitAnimation,@android:activityCloseEnterAnimation,@android:activityCloseExitAnimation 这几个item设定,第一个表示新的activity创建进入效果,第2个表示activity还没有finish()下退出效果,第3个表示上一个 activity返回进入效果,第4个表示的是activity finish()之后退出效果...(好似有点乱了)。具体设置参考如下:

      <style name="myact">

          <item name="@android:activityOpenEnterAnimation">@anim/act_enter</item>

          <item name="@android:activityOpenExitAnimation">@anim/act_exit</item>

          <item name="@android:activityCloseEnterAnimation">@anim/act_enter</item>

          <item name="@android:activityCloseExitAnimation">@anim/act_exit</item>

      </style>

       <style name="mytheme" parent="@android:style/Theme"> 

          <item name="@android:windowAnimationStyle">@style/myact</item>

      </style>

    然后把mytheme这个style作为Activity的theme就行了,还有一个办法就是 通过Acitvity获取它的window, 然后和设置dialog一样进行设置,因为归根到底是设置Window的layoutparams里的windowAnimations值。所以 Activity的进入和退出效果也可以通过@android:windowEnterAnimation和 @android:windowExitAnimation这两个item设定。

  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/hbxblogs/p/3193874.html
Copyright © 2020-2023  润新知