关闭

Android Activity间的过渡动画

标签: androidactivity切换动画
1385人阅读 评论(1) 收藏 举报
分类:


本文详情来源:http://blog.csdn.net/h3c4lenovo/article/details/11526195   转载请注明出处

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:74094次
    • 积分:1162
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:51篇
    • 译文:0篇
    • 评论:15条