如何在不完成之前的活动的情况下为活动设

时间:2016-05-23 11:30:49

标签: android android-activity android-animation

在我的应用程序中,我想从右到左为我的活动设置动画。直到现在我试试这个:

startActivity(intent);
finish();
overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);

这个工作正常但我以前的活动已经完成了。我想在不完成之前的活动的情况下做同样的动画。

尝试这样的时候:

startActivity(intent);
overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);

只有新开始的活动进入动画,之前的活动才会产生任何效果。如何在不完成前一个活动的情况下为两个活动设置动画?

2 个答案:

答案 0 :(得分:0)

在这种情况下你应该使用Handler! 把时间放在第一个活动的Handler上。在此期间,为您的第一个活动设置动画。在此步骤处理程序之后,将控件提供给第二个活动,然后在第二个活动上启动动画

答案 1 :(得分:0)

我认为您的动画可能是问题所在。我使用以下动画文件具有相同的效果:

slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
       android:duration="@android:integer/config_mediumAnimTime"
       android:fromXDelta="100%"
       android:fromYDelta="0%"
       android:toXDelta="0%"
       android:toYDelta="0%" />
</set>

slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
       android:duration="@android:integer/config_mediumAnimTime"
       android:fromXDelta="0%"
       android:fromYDelta="0%"
       android:toXDelta="-100%"
       android:toYDelta="0%" />
</set>