Android开发 之 activity跳转动画(补间动画跳转)

activity跳转动画(补间动画跳转)

先了解一些基本概念:
activity的显示是包括状态栏的,他们这件事并列关系,当你把状态栏隐藏的时候,activity布局会上移。所以activity动画并不影响状态栏。
activity的动画效果可以在两个地方设置:主题属性中;activity打开或者关闭的时候通过代码设置。
主题中:
 <item name="android:windowAnimationStyle">@android:style/Animation.Activity</item>
这个属性设置了一个系统定义的切换动画,也是默认的。当然也可以自己定义动画,例如:
<style name="AppTheme2" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@style/activityanimation</item>
    </style>
    <style name="activityanimation" >
        <!--<item name="android:activityOpenEnterAnimation">@anim/activity_in</item>-->
        <!--<item name="android:activityOpenExitAnimation">@anim/activity_out</item>-->
        <!--<item name="android:activityCloseEnterAnimation">@anim/activity_in</item>-->
        <!--<item name="android:activityCloseExitAnimation">@anim/activity_out</item>-->
        <item name="android:windowEnterAnimation">@anim/activity_in</item>
        <item name="android:windowExitAnimation">@anim/activity_out</item>
    </style>
在activityanimation中有两种方式,其实这两中都是可以实现效果的。有一个进入动画和退出动画,是指当前要挡开的activity动画,和当前要退出的activity动画,这点要注意。所以当你给你一个activiy设置这些动画的时候,你会发现退出的时候是没有效果的。就是因为这里设置的退出动画时上一个场景要退出的activity动画。其实这里很复杂的,又是系统会判断上一个activity要不要执行这个退出动画的,当你要打开的activity设置了半透明模式的时候,上一个就不执行动画了。

为了解决这个问题需要在代码中去设置退出动画效果。在start和finish的后面加上下面代码:
overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
第一个参数动画就是要打开进入的activity动画,第二个就是要退出的activity动画,当然两个参数都是设置为0就是不执行任何动画,包括系统默认的动画效果。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值