其实在网上有一种修改Manifest/Appthem的方法,但是效果不理想。
如果不要MainActivity 的进入方法,实现跳转其他Activity时加载自定义动画相对简单。
一.先自定义俩个动画 进出动画
//左侧进入屏幕 activity_in_left
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
//左侧退出屏幕 activity_out_left
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromXDelta="0"
android:toXDelta="-100%p"/>
</set>
//渐显 fade_in
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />
//渐隐 fade_out
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="0.0" />
//写一个BaseActivity/BaseFragment
public void startActivityLeftRight(Class clazz) {
startActivity(new Intent(this, clazz));
this.overridePendingTransition(R.anim.activity_in_left, R.anim.fade_out);
}
public void startActivityLeftRight(Intent intent) {
startActivity(intent);
this.overridePendingTransition(R.anim.activity_in_left, R.anim.fade_out);
}
//如果设置全局退出动画
@Override
public void onBackPressedSupport() {
overridePendingTransition(0, com.zqf.base.R.anim.activity_out_left);
super.onBackPressedSupport();
}
调用Activty的finish()时,换作调用
onBackPressedSupport();
如果样式不统一的话,在每个Activity的对应方法重写吧,也没几行.
可以在Style 里 定义 几套 进出动画
<style name="Anim_fade" parent="AppTheme">
<item name="android:windowAnimationStyle">@style/fade</item>
</style>
<style name="fade" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/fade_in</item>
<item name="android:activityOpenExitAnimation">@anim/fade_out</item>
<item name="android:activityCloseEnterAnimation">@anim/fade_in</item>
<item name="android:activityCloseExitAnimation">@anim/fade_out</item>
</style>