我的第一个 Activity 中有一个 ListView。当我点击里面的一个项目时,我开始另一个 Activity 。好的。但是现在我想修改这两个 Activity 之间的转换:
- Activity1 -> Activity2:Activity2 从底部到顶部的垂直过渡(进度)
- 当我回到 Activity1 时:Activity2 从上到下的垂直过渡(进度)
更新
我找到了符合我要求的解决方案:
Activity 1 -> Activity 2
startActivity();
overridePendingTransition(R.anim.from_bottom_to_top, 0);
from_botton_to_top.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:fromYDelta="100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_shortAnimTime"/>
Activity2 -> Activity1(后退键)
finish();
overridePendingTransition(0, R.anim.from_top_to_bottom);
from_top_to_bottom.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="0%p" android:toYDelta="100%p"
android:duration="@android:integer/config_shortAnimTime"/>
最佳答案
使用overridePendingTransition
改变Activity动画。
对于第一种情况,您可以使用:
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.abc_slide_in_bottom, R.anim.abc_slide_out_top);
对于第二种情况选择其他动画并调用overridePendingTransition
在 onBackPressed
或 finish
之后。 overridePendingTransition
应该在您的 Activity 完成后立即调用。
如果您正在寻找动画,请查看 google API 示例。 https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/res/anim/ 有很多简单有用的动画 xml。
但是 abc_slide_in_bottom
和 abc_slide_in_bottom
几年前就在 google appcompat lib 中了。 abc_slide_out_bottom
和 abc_slide_in_top
也是。
关于Android:如何与另一个 Activity 进行垂直 Activity 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165066/