10

我想要实现的是:为现有活动启动一个带有过渡动画的新活动。

我想向上滑动当前活动,新活动将落后于当前活动。

这是上滑动画:R.layout.slide_up

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="1000"
        android:fromYDelta="0%"
        android:toYDelta="100%" />

</set>

这是我如何应用活动动画过渡:

overridePendingTransition ( 0 , R.anim.slide_up );

我将 0 用于进入活动,因为我不想要新活动的任何动画,并且它不工作(不执行动画)。如果我也使用动画进入活动,它可以工作(两个动画都执行),如下所示:

overridePendingTransition ( R.anim.slide_out , R.anim.slide_up );

其中R.anim.slide_out

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="1000"
        android:fromYDelta="100%"
        android:toYDelta="0%" />

</set>

有任何想法吗 ?

我正在使用 Android 4.1.2 和 Android 4.0.4

4

4 回答 4

14

更改退出动画,使其呈现在进入活动的顶部。

R.anim.slide_up

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:zAdjustment="top">

    <translate
        android:duration="1000"
        android:fromYDelta="0%"
        android:toYDelta="100%" />

</set>

然后你可以做你最初做的事情来设置动画。

overridePendingTransition ( 0 , R.anim.slide_up );
于 2013-02-26T13:50:49.350 回答
3

我有完全相同的过渡,这样的动画对我有用:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromYDelta="0%" android:toYDelta="100%" android:zAdjustment="top"
android:duration="300" />  
于 2013-02-26T14:00:40.517 回答
3

在 startActivity 方法之后调用下面的方法。

 overridePendingTransition(0,0);

这将覆盖默认动画并且不执行动画。如果您愿意,还可以提供一些自定义动画

overridePendingTransition(R.anim.animation1,R.anim.animation2);

于 2014-05-12T08:47:46.800 回答
0

无论您在何处调用意图来启动 Activity,都需要修改该意图。 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(AlbumListActivity.this); startActivity(intent, options.toBundle());

如果您有任何专用方法setupTransitions()可以将接下来的两行代码放在那里,否则您可以将它们放入onCreate()

getWindow().setEnterTransition(new Slide(Gravity.RIGHT).setDuration(800));

Gravity.RIGHT决定了您想要开始下一个活动的方向。setDuration()方法是可选的,为了更平滑的过渡,我使用了它,你不必。

通过使用不同的 Gravity 和 setDuration 属性来探索更多内容。

于 2017-09-07T02:38:50.990 回答