activity切换时,使用以下两个动画
slide_up_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="300"
/>
</set>
slide_down_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="300"
/>
</set>
切换 activity 代码如下
startActivity(new Intent(MainActivity.this, SettingActivity.class));
overridePendingTransition(R.anim.slide_up_in, R.anim.slide_down_out);
正常情况下是没问题,但如果MainActivity下面还有其他显示界面(例如其他app的activity),则在启动动画时,会出现黑色背景。
解决
添加 fake_anim.xml,其中 duration
时间与其他动画时间一致
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%p"
android:toYDelta="0%p"
android:duration="300"
/>
</set>
使用如下切换 activity 代码
startActivity(new Intent(MainActivity.this, SettingActivity.class));
overridePendingTransition(R.anim.slide_up_in, R.anim.fake_anim);