Activity之间的切换动画

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

 

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

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

 

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

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

 

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

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

1. 由A跳到B的动画:

 

Java代码 复制代码  收藏代码Activity之间的切换动画
  1. startActivity(new Intent(A.this, B.class));   
  2. overridePendingTransition(inAnim, outAnim);  
startActivity(new Intent(A.this, B.class));
overridePendingTransition(inAnim, outAnim);

2. 由B回到A的动画:

 

Java代码 复制代码  收藏代码Activity之间的切换动画
  1. finish();   
  2. activity.overridePendingTransition(inAnim, outAnim);  
finish();
activity.overridePendingTransition(inAnim, outAnim);
 

加了Dialog样式的Activity的情况

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

 

Xml代码 复制代码  收藏代码Activity之间的切换动画
  1. <</span>item name="android:windowIsTranslucent">true</</span>item>  
true

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

 

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

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值