实例一 overridePendingTransition
概述
实现两个 Activity 切换时的动画。在overridePendingTransition中使用
有两个参数:进入动画和出去的动画。
注意(调用时间)
1、必须在 StartActivity() 或 finish() 之后立即调用。
2、而且在 2.1 以上版本有效
3、手机设置-显示-动画,要开启状态
实现左进右出的效果
MainActivity
startActivity(new Intent(OverridePendingTransitionActivity.this,SecondActivity.class));
overridePendingTransition(R.anim.leftin, R.anim.leftout);
SecondActivity
@Override
public void onClick(View arg0) {
finish();
overridePendingTransition(R.anim.in, R.anim.out);
}
res/anim/leftin.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator" >
<translate
android:fromXDelta="100%p"
android:toXDelta="0%p"
android:duration="400" />
</set>
anim/leftout.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top" >
<translate
android:duration="400"
android:fromXDelta="0%p"
android:toXDelta="100%p"
/>
</set>
由于主题默认是黑色,所以在执行以上跳转动画时,会出现短暂的黑屏,这样的用户体验是很不好。解决办法就是主题文件中加下面该属性。使主题的窗口变成透明,这样就不会出现黑屏了。
/string/styles.xml
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowIsTranslucent">true</item>
</style>
总结
此实例适用于为单独某个界面设置切换动画
实例二(主题切换动画)
定义切换动画的效果
<style name="Animation_Activity"
parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/right_in</item>
<item name="android:activityOpenExitAnimation">@anim/left_out</item>
<item name="android:activityCloseEnterAnimation">@anim/left_in</item>
<item name="android:activityCloseExitAnimation">@anim/right_out</item>
</style>
在主题中引用
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowNoTitle">true</item>
<itemname="android:windowAnimationStyle">@style/Animation_Activity
</item>
</style>
AndroidManifest.xml文件中Activity中引用主题
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme"
android:label="@string/app_name" />
详情参考 https://blog.csdn.net/github_25928675/article/details/49452183