• Android Activity动画属性简介


    Android Activity动画属性简介

    在Android当中 设置activity的动画 需要复写 android:windowAnimationStyle这个属性

    我们自定义一个动画样式来继承 @android:style/Animation(Base style for animations.  This style specifies no animations)

    这个样式是Android操作系统提供的 没用动画的样式 我们定义其中的4个属性还设置我们想要的效果

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

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

    android:activityCloseEnterAnimation 表示上一个activity返回进入效果 比如有俩个activity A与B  B在最上面,B退出(finish)后 A重新进入的效果。

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

    下面写一个activity左右滑动的效果。

        <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>

     slide_left_in.xml

    <set
      xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:duration="300" android:fromXDelta="-100.0%p" android:toXDelta="0.0" />
    </set>

    slide_left_out.xml

    <set
      xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:duration="300" android:fromXDelta="0.0" android:toXDelta="-100.0%p" />
    </set>

    slide_right_in.xml

    <set
      xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:duration="300" android:fromXDelta="100.0%p" android:toXDelta="0.0" />
    </set>

    slide_right_out.xml

    <set
      xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:duration="300" android:fromXDelta="0.0" android:toXDelta="100.0%p" />
    </set>

    上面是通写配置文件的方式来定义activity的动画效果,我们还可以通过代码的方式来指定动画效果。

    overridePendingTransition(int enterAnim, int exitAnim)

    all immediately after one of the flavors of startActivity(Intent) or finish() to specify an explicit transition animation to perform next.

    这个方法可以放在startActivity(intent)和finish()方法的后面。

    (A启动B A不动 B从下面滑入)

    第一个参数是进入activity的动画,第二个参数是当前activity退出时的动画。

    Intent intent = new Intent(NavigationDemo.this, AnimationActivity.class);
    startActivity(intent);
    overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.hold);

    slide_in_from_bottom.xml

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromYDelta="100%p"
        android:toYDelta="0" />

    hold.xml

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromXDelta="0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toXDelta="0" />

    (A与B B退出时从下面滑出) 

    第一个参数指定A进入时的效果,为0表示没有动画, 第二个参数表示当前B退出时的动画。

    @Override
        public void finish() {
            super.finish();
            overridePendingTransition(0, R.anim.slide_out_to_bottom);
        }
    }

    slide_out_to_bottom.xml

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
  • 相关阅读:
    spring core与context的理解
    maven项目中pom.xml快速生成
    MariaDB常用命令
    MariaDB快速入门指南
    My_plan_51
    Oracle简介及安装
    Oracle单行函数
    oracle多表查询
    单点登录原理与简单实现
    JavaScript 的时间消耗
  • 原文地址:https://www.cnblogs.com/daxin/p/3516737.html
Copyright © 2020-2023  润新知