Activity的进入和退出动画的实现
(1).在style.xml中配置Activity的动画
<!--actvity进出动画-->
    <style name="ActivityOutInAnimation">
        <!--新Activity进入动画-->
        <item name="android:activityOpenEnterAnimation">@anim/enter</item>
        <!--旧Activity退出动画-->
        <item name="android:activityOpenExitAnimation">@anim/exit</item>
        <!--旧Activity进入动画-->
        <item name="android:activityCloseEnterAnimation">@anim/enter</item>
        <!--新Activity退出动画-->
        <item name="android:activityCloseExitAnimation">@anim/exit</item>
    </style>
    
   <style name="DialogActivityStyle" parent="@android:style/Theme.Dialog">   
     <item name="android:windowAnimationStyle">@style/ActivityOutInAnimation</item>
   </style>
  
           <activity
            android:name=".act.FunctionsActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@style/DialogActivityStyle" />
无奈之下只好动态去设置Activity的动画效果
overridePendingTransition(int enterAnim, int exitAnim) 通过这个方法来设置Activity的进出动画
int enterAnim 进入动画 int exitAnim 退出动画 注意此方法在 startActivity()和 finish()之后调用 进入:退出:Intent intent = new Intent(context,TestActivity.class); startActivity(intent); overridePendingTransition(R.anim.enter, R.anim.exit);由于项目需求,我的Activity是在Service中启动的,在设置进入动画的时候,service中无法调用overridePendingTranstion(),这就无奈了....@Override public void finish() { super.finish(); overridePendingTransition(R.anim.enter,R.anim.exit); }
幸好巨人的肩膀已为我搭好... 在要启动的onCreate()方法中调用overridePendingTranstion()方法圆满收官!@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//去标题 overridePendingTransition(R.anim.enter, R.anim.exit); setContentView(R.layout.activity_functions); }
最后如果应用中大多数的Activity都要使用自定义进出动画的话,可以写个基类继承Activity,重写启动和关闭Activity的方法,在其中
调用overridePandingTranstion()public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /*重写startActivity()*/ @Override public void startActivity(Intent intent) { super.startActivity(intent); overridePendingTransition(R.anim.enter , R.anim.exit); } /*重写finish()*/ @Override public void finish() { super.finish(); overridePendingTransition(R.anim.enter , R.anim.exit); } }
 
                   
                   
                   
                   本文介绍了在Android中实现Activity的进入和退出动画的方法。包括通过style.xml配置动画、动态设置动画效果及在Service中启动Activity时如何设置动画。此外还提供了一种基类Activity的解决方案,用于统一管理应用中多数Activity的自定义动画。
本文介绍了在Android中实现Activity的进入和退出动画的方法。包括通过style.xml配置动画、动态设置动画效果及在Service中启动Activity时如何设置动画。此外还提供了一种基类Activity的解决方案,用于统一管理应用中多数Activity的自定义动画。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   960
					960
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            