如何在Android中的两个活动之间应用幻灯片animation?

当我更改“活动”并为此使用以下代码但没有得到任何结果时,我希望从左向右滑动效果。 请纠正我。 谢谢

在java中这两个文件

super.onCreate(savedInstanceState); overridePendingTransition(R.anim.fadein, R.anim.fadeout); setContentView(R.layout.main); 

res / anim目录中的两个文件
fadein.xml

 <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="5000" android:fromAlpha="0.0" android:interpolator="@android:anim/slide_out_right" android:toAlpha="1.0" > </alpha> 

fadeout.xml

 <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="5000" android:fromAlpha="0.0" android:interpolator="@android:anim/slide_in_left" android:toAlpha="1.0" > </alpha> 

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); new Handler().postDelayed(new Runnable() { public void run() { /* Create an intent that will start the main activity. */ Intent mainIntent = new Intent(SplashScreen.this, ConnectedActivity.class); mainIntent.putExtra("id", "1"); //SplashScreen.this.startActivity(mainIntent); startActivity(mainIntent); /* Finish splash activity so user cant go back to it. */ SplashScreen.this.finish(); /* Apply our splash exit (fade out) and main entry (fade in) animation transitions. */ overridePendingTransition(R.anim.mainfadein,R.anim.splashfadeout); } }, SPLASH_DISPLAY_TIME); } 

将这两个文件添加到res / anim文件夹中。

slide_in.xml

  <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromXDelta="100%p" android:toXDelta="0%p"> </translate> 

slide_out.xml

  <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromXDelta="0%p" android:toXDelta="-100%p"> </translate> 

并将下面的代码写入您通过Intent传递的下一个活动的onCreate()方法中。

  overridePendingTransition(R.anim.slide_in, R.anim.slide_out); 

您可以覆盖您的默认活动animation,并执行比overridePendingTransition更好的效果。 我使用这个解决scheme适用于每个Android版本。 只需复制粘贴4个文件,然后添加4行样式,如下所示:

创build一个“CustomActivityAnimation”,并通过“windowAnimationStyle”添加到你的基本主题。

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorPrimary</item> <item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item> </style> <style name="CustomActivityAnimation" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item> <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item> <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item> <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item> </style> 

然后在res文件夹下创buildanim文件夹,然后创build这四个animation文件到anim文件夹中:

slide_in_right.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/> </set> 

slide_out_left.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="@android:integer/config_mediumAnimTime"/> </set> 

slide_in_left.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/> </set> 

slide_out_right.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_mediumAnimTime"/> </set> 

如果您遇到任何问题,那么您可以从github下载我的示例项目 。

谢谢

您可以在startActivity使用overridePendingTransition而不是onCreate 。 至less,这对我有用!

在这里看一个完整的例子。 它包括一个(反向)animationonBackPressed,所以当回到以前的活动! 在你的具体例子(淡入和淡出),可能是不必要的。