在Activity之间转换动画。

2023-05-22


在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.Testitem>  
3. style>







Xml代码





1. <style name="Animation.Activity.Test" parent="@android:style/Animation.Activity">  
2.    <item name="android:activityOpenEnterAnimation">@anim/activity_open_enteritem>  
3.    <item name="android:activityOpenExitAnimation">@anim/activity_open_exititem>  
4.    <item name="android:activityCloseEnterAnimation">@anim/activity_close_enteritem>  
5.    <item name="android:activityCloseExitAnimation">@anim/activity_close_exititem>  
6.       
7.    <item name="android:taskOpenEnterAnimation">@anim/activity_open_enteritem>  
8.    <item name="android:taskOpenExitAnimation">@anim/activity_open_exititem>  
9.    <item name="android:taskCloseEnterAnimation">@anim/activity_close_enteritem>  
10.    <item name="android:taskCloseExitAnimation">@anim/activity_close_exititem>  
11.       
12.    <item name="android:taskToFrontEnterAnimation">@anim/activity_open_enteritem>  
13.    <item name="android:taskToFrontExitAnimation">@anim/activity_open_exititem>  
14.    <item name="android:taskToBackEnterAnimation">@anim/activity_close_enteritem>  
15.    <item name="android:taskToBackExitAnimation">@anim/activity_close_exititem>  
16. style>






只需这样配置,Activity之间的转换动画就可以直接定制。



动态改变程序中的动态转换动画


若系统中还有一些地方需要单独更改动画,则可在程序中更改:


1. 动画从A跳到B:







代码Java





1. startActivity(new Intent(A.this, B.class));   
2. n(inAnim, outAnim);









2. 从B回到A的动画:







代码Java





1. finish();   
2. n(inAnim, outAnim);









Activity增加了Dialog风格的情况。


如果下面的代码被添加到Activity的样式文档中,那么Dailog的样式就会出现在Activity中:







Xml代码


1. <item name="android:windowIsTranslucent">trueitem>





true






overridePendingTransition()动态设置方法。



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



本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com