Android Activity间的过渡动画

在Android中,两个activiyt的切换总是自左向右抽动的效果

在Activity中提供了overridePendingTransition函数,用在startActivity(Intent) 或 finish之后,


overridePendingTransition有两个参数,都是int类型的,意味着这里要传入一个资源,

在sdk中是这样定义的、


enterAnim A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation.
exitAnim A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation.


一个是进入的动画,一个是退出的动画,如果连个值都设置成0,则表示不添加动画

即:overridePendingTransition(0, 0);

 

例如  在startActivity开启一个intent之后,添加如下代码

overridePendingTransition(Android.R.anim.fade_in, android.R.anim.fade_out); 
这样在启动下一个窗口的时候出现淡入淡出的效果


//实现从左向右滑动效果   
overridePendingTransition(Android.R.anim.slide_in_left,   
Android.R.anim.slide_out_right); 

 

另外,还可以通过在资源文件夹中anim中添加自定义的配置文件,来实现自定义过度动画

例如在程序中添加这样的 效果来实现和iphone一样的效果

overridePendingTransition(R.anim.zoomin, R.anim.zoomout); 
自定义的zoomin.xml文件,该文件设置了新的activity进入时的效果
<?xml version="1.0" encoding="utf-8"?>  
<set  
    xmlns:Android="http://schemas.android.com/apk/res/android"  
    Android:interpolator="@android:anim/decelerate_interpolator">  
    <scale  
        Android:fromXScale="2.0"        android:toXScale="1.0"  
        Android:fromYScale="2.0"        android:toYScale="1.0"  
        Android:pivotX="50%p"       android:pivotY="50%p"  
        Android:duration="@android:integer/config_mediumAnimTime" />  
</set> 


自定义的zoomout.xml文件,该文件设置了原来的activity退出是的效果
<?xml version="1.0" encoding="utf-8"?>  
<set  
    xmlns:Android="http://schemas.android.com/apk/res/android"  
    Android:interpolator="@android:anim/decelerate_interpolator"  
    Android:zAdjustment="top">  
    <scale  
        Android:fromXScale="2.0"        android:toXScale="0.5"  
        Android:fromYScale="2.0"        android:toYScale="0.5"  
        Android:pivotX="50%p"       android:pivotY="50%p"  
        Android:duration="@android:integer/config_mediumAnimTime" />  
    <alpha  
        Android:fromAlpha="1.0"  
        Android:toAlpha="0"  
        Android:duration="@android:integer/config_mediumAnimTime" />  
</set>  

 

最后在友情提示一下给没有仔细看的同学,此方法会在startActivity和finish之后立即调用。

意思是说,你要在A start B的时候调用一次,还要在B finish的时候调用一次,才有连贯的动画!记得有两次喔!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值