Android之过渡动画


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

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

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,则表示不添加动画

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

  1. overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);  
这样在启动下一个窗口的时候出现淡入淡出的效果
  1. //实现从左向右滑动效果   
  2. overridePendingTransition(android.R.anim.slide_in_left,   
  3. android.R.anim.slide_out_right);  

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

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

  1. overridePendingTransition(R.anim.zoomin, R.anim.zoomout);  
自定义的zoomin.xml文件,该文件设置了新的activity进入时的效果
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:interpolator="@android:anim/decelerate_interpolator">  
  5.     <scale  
  6.         android:fromXScale="2.0"        android:toXScale="1.0"  
  7.         android:fromYScale="2.0"        android:toYScale="1.0"  
  8.         android:pivotX="50%p"       android:pivotY="50%p"  
  9.         android:duration="@android:integer/config_mediumAnimTime" />  
  10. </set>  
自定义的zoomout.xml文件,该文件设置了原来的activity退出是的效果
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:interpolator="@android:anim/decelerate_interpolator"  
  5.     android:zAdjustment="top">  
  6.     <scale  
  7.         android:fromXScale="2.0"        android:toXScale="0.5"  
  8.         android:fromYScale="2.0"        android:toYScale="0.5"  
  9.         android:pivotX="50%p"       android:pivotY="50%p"  
  10.         android:duration="@android:integer/config_mediumAnimTime" />  
  11.     <alpha  
  12.         android:fromAlpha="1.0"  
  13.         android:toAlpha="0"  
  14.         android:duration="@android:integer/config_mediumAnimTime" />  
  15. </set>   

相关内容