Activity之间的切换动画

来源:互联网 发布:矩阵式组织结构案例 编辑:程序博客网 时间:2024/05/16 04:46

从android系统2.1以后,android新增了方法:overridePendingTransition(int enterAnim, int exitAnim),用于改变Activity之间的切换动画。

 

从样式里进行改变切换动画

这个主要是加在样式文件里进行更改,代码如下:

 

Xml代码  收藏代码
  1. <style name="Theme.Test" parent="@android:style/Theme.Light.NoTitleBar">  
  2.     <item name="android:windowAnimationStyle">@style/Animation.Activity.Test</item>  
  3. </style>  
Xml代码  收藏代码
  1. <style name="Animation.Activity.Test" parent="@android:style/Animation.Activity">  
  2.     <item name="android:activityOpenEnterAnimation">@anim/activity_open_enter</item>  
  3.     <item name="android:activityOpenExitAnimation">@anim/activity_open_exit</item>  
  4.     <item name="android:activityCloseEnterAnimation">@anim/activity_close_enter</item>  
  5.     <item name="android:activityCloseExitAnimation">@anim/activity_close_exit</item>  
  6.       
  7.     <item name="android:taskOpenEnterAnimation">@anim/activity_open_enter</item>  
  8.     <item name="android:taskOpenExitAnimation">@anim/activity_open_exit</item>  
  9.     <item name="android:taskCloseEnterAnimation">@anim/activity_close_enter</item>  
  10.     <item name="android:taskCloseExitAnimation">@anim/activity_close_exit</item>  
  11.       
  12.     <item name="android:taskToFrontEnterAnimation">@anim/activity_open_enter</item>  
  13.     <item name="android:taskToFrontExitAnimation">@anim/activity_open_exit</item>  
  14.     <item name="android:taskToBackEnterAnimation">@anim/activity_close_enter</item>  
  15.     <item name="android:taskToBackExitAnimation">@anim/activity_close_exit</item>  
  16. </style>  

 只要这样进行配置,那边Activity之间的切换动画都可以进行自定义了

 

程序里动态的进行改变切换动画

如果程序中还有一些地方需要单独进行更改动画,则可以在程序里进行更改:

1. 由A跳到B的动画:

 

Java代码  收藏代码
  1. startActivity(new Intent(A.this, B.class));  
  2. overridePendingTransition(inAnim, outAnim);  

2. 由B回到A的动画:

 

Java代码  收藏代码
  1. finish();  
  2. activity.overridePendingTransition(inAnim, outAnim);  
 

加了Dialog样式的Activity的情况

如果在Activity的样式文件里,加入了下面的代码,则Activity就会出现Dailog的样式了:

 

Xml代码  收藏代码
  1. <item name="android:windowIsTranslucent">true</item>  

加入了这句话,按正常情况,应该不会再执行你设置的Activity的切换动画,但有时也会执行Activity之间的切入动画(有可能在程序第一次启动时),所以最好在代码里也加上overridePendingTransition()方法,进行动态进行设置。

 

总结:Activity之间的动画,是拿整个界面执行动画(包括通知栏),所以如果你执行向下切换动画,会看到白色的状态栏,这个我没有找到解决办法。


原创粉丝点击