从android系统2.1以后,android新增了方法:overridePendingTransitio
从样式里进行改变切换动画
这个主要是加在样式文件里进行更改,代码如下:
- <</span>style
name="Theme.Test" parent="@android:style/Theme.Light.NoTitleBar"> -
<</span>item name="android:windowAnimationStyle">@style/Animation.Activity.Test</</span>item> - </</span>style>
- <</span>style
name="Animation.Activity.Test" parent="@android:style/Animation.Activity"> -
<</span>item name="android:activityOpenEnterAnimati on">@anim/activity_open_enter</</span>item> -
<</span>item name="android:activityOpenExitAnimatio n">@anim/activity_open_exit</</span>item> -
<</span>item name="android:activityCloseEnterAnimat ion">@anim/activity_close_enter</</span>item> -
<</span>item name="android:activityCloseExitAnimati on">@anim/activity_close_exit</</span>item> -
-
<</span>item name="android:taskOpenEnterAnimation">@anim/activity_open_enter</</span>item> -
<</span>item name="android:taskOpenExitAnimation">@anim/activity_open_exit</</span>item> -
<</span>item name="android:taskCloseEnterAnimation">@anim/activity_close_enter</</span>item> -
<</span>item name="android:taskCloseExitAnimation">@anim/activity_close_exit</</span>item> -
-
<</span>item name="android:taskToFrontEnterAnimatio n">@anim/activity_open_enter</</span>item> -
<</span>item name="android:taskToFrontExitAnimation ">@anim/activity_open_exit</</span>item> -
<</span>item name="android:taskToBackEnterAnimation ">@anim/activity_close_enter</</span>item> -
<</span>item name="android:taskToBackExitAnimation">@anim/activity_close_exit</</span>item> - </</span>style>
程序里动态的进行改变切换动画
如果程序中还有一些地方需要单独进行更改动画,则可以在程序里进行更改:
1. 由A跳到B的动画:
startActivity(new Intent(A.this, B.class)); overridePendingTransition(inAnim, outAnim);
2. 由B回到A的动画:
finish(); activity.overridePendingTransition(inAnim, outAnim);
加了Dialog样式的Activity的情况
如果在Activity的样式文件里,加入了下面的代码,则Activity就会出现Dailog的样式了:
true
加入了这句话,按正常情况,应该不会再执行你设置的Activity的切换动画,但有时也会执行Activity之间的切入动画(有可能在程序第一次启动时),所以最好在代码里也加上overridePendingTransitio
总结:Activity之间的动画,是拿整个界面执行动画(包括通知栏),所以如果你执行向下切换动画,会看到白色的状态栏,这个我没有找到解决办法。