Activity 全局跳转动画。

  其实在网上有一种修改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的对应方法重写吧,也没几行.



猜你喜欢

转载自blog.csdn.net/flypig_vip/article/details/80590316