Android activity切换动画

来源:互联网 发布:网络打印机服务器 编辑:程序博客网 时间:2024/05/21 15:47

android:activityOpenEnterAnimation 一个activity创建进入的效果

android:activityOpenExitAnimation 一个activity还没有finish()下退出效果, 比如有俩个activity A,B 首先启动A 然后再启动B 那么A还没有finish() 这A的退出效果

android:activityCloseEnterAnimation 表示上一个activity返回进入效果 比如有俩个activity A,B B退出后A进入的效果

activityCloseExitAnimation 表示的是activity finish()之后的效果 比如有俩个activity A,B B退出后会被finish() 那么B的退出效果在这定义

    <style name="AppTheme" parent="@android:style/Theme">             <item name="android:windowAnimationStyle">@style/activityAnimation</item>    </style>
   <style name="activityAnimation" parent="@android:style/Animation">
        <item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item>
        <item name="android:activityOpenExitAnimation">@anim/slide_left_out</item>
        <item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item>
        <item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>
   </style>

这四个属性容易不好记,按照顺序我们简单的记忆口诀是“新进、旧出;旧进、新出”;

不用担心顺序搞混的问题,android studio重新排版的顺序就是按照这个顺序来的。

当新、旧两个activity都是用这个动画主题时,进入、退出动画是正常的。(这种情况一般都是我们在Application里面统一指定的所有activity的交互动画。)

一旦两者之中,所使用的动画主题不一致的时候,交互就出现问题了。

 

具体为:

旧activity没有、新activity有主题;进入动画用新的,退出动画用旧的  (退出动画“失效”)

旧activity有主题,新activity没有:进入动画用旧的, 退出动画用新的 (进入动画“失效”)

 

很多都是第二种情况,那么如何让退出动画产生效果呢,代码如下:

void finishActivity() {
        finish();
       
//第一个参数是旧activity进入动画,第二个参数是当前activity退出动画        overridePendingTransition(R.anim.slide_in_top, R.anim.slide_out_bottom);
    }

Andriod动画中windowEnterAnimation和activityOpenEnterAnimation的区别

windowEnterAnimation用于修饰dialog动画 activityOpenEnterAnimation用于修饰activity的动画
0 0
原创粉丝点击