Android 动画之activity动画

Android 动画之activity动画

           前面和大家简单分析了Android的控件的动画效果(补间动画和属性动画)。但是在开发过程中我们发现:控件的动画效果做的很好,但是在页面跳转的时候很不自然,我们寻求一种让用户有一种渐进的效果,我看开始使用页面之间的动画效果,也就是Activity之间的动画效果,给用户一种很自然的感觉。
       在Android的Activity之间的动画效果的实现方式比较多,在这里之列举出部分实现方法。
       说道动画我们首先想到的是控件的简单的动画效果——补间动画,使用补间动画我们一般会使用xml文件定义动画的过程,属性分别是:alpha,rotate,scale,translate。同样的activity之间的简单动画效果也可以使用这四个属性来定义动画的过程,我定义了两个动画效果,分别是活动的进入动画和活动的退出动画。
     slide_in_right——从右边进入的动画效果代码如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    >
<translate
    android:fromXDelta="100%"
    android:toXDelta="0.0"
    ></translate>
    
</set>
     slide_out_left——从左边出去的动画过程:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300">
<translate
    android:fromXDelta="0.0"
    android:toXDelta="-100%"
    ></translate>
</set>
好了,关于activity进入和退出的动画过程已经配置好了,现在我们需要做的就是让activity如何按照我们配置的动画过程执行动画,显示动画效果出来。在执行动画之前我们要了解清楚动画效果在哪里产生效果:

在介绍activity的切换动画之前我们先来说明一下实现切换activity的两种方式:

  • 调用startActivity方法启动一个新的Activity并跳转其页面

  • 调用finish方法销毁当前的Activity返回上一个Activity界面

当调用startActivity方法的时候启动一个新的activity,这时候就涉及到了旧的Activity的退出动画和新的Activity的显示动画; 
当调用finish方法的时候,销毁当前Acitivity,就涉及到了当前Activity的退出动画和前一个Activity的显示动画;

所以我们的activity跳转动画是分为两个部分的:一个Activity的销毁动画与一个Activity的显示动画,明白了这一点之后我们开始看一下第一种实现Activity跳转动画的方式:通过overridePendingTransition方法实现Activity切换动画。

一  、overridePendingTransition

这种方式很简单的,它会在startactivity和finish方法后执行

intent.setClass(this,SecondActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
二 、使用style方式实现切换动画

<style name="SWIPE" parent="AppTheme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@style/ActivityAnim</item>
    </style>
<style name="ActivityAnim">
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
    <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
</style>
我们通过style定义了windowAnimotionStyle的动画过程,我们再来了解下windowA你motion的四种动画:

activityOpenEnterAnimation // 用于设置打开新的Activity并进入新的Activity展示的动画

activityOpenExitAnimation // 用于设置打开新的Activity并销毁之前的Activity展示的动画

activityCloseEnterAnimation // 用于设置关闭当前Activity进入上一个Activity展示的动画

activityCloseExitAnimation // 用于设置关闭当前Activity时展示的动画

最后我们在配置文件中配置activity的动画主题

<activity android:name=".ThreeActiviyt"
    android:theme="@style/SWIPE"></activity>
这两种activity之间的切换动画实现方式比较简单,其实在Android5.0之后,对于动画的效果有所提高,新的实现方式已经有了,但是我没有了解很多,就说到这里,有朋友想了解更多的有关切换动画的实现可以看看这篇 文章

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值