Animation 活动之间的推入/移出动画

Animation 活动之间的推入/移出动画,animation,android-activity,slide,Animation,Android Activity,Slide,我正在开发一个应用程序,它由许多表示阶段的活动组成。因此有Stage1Activity、Stage2Activity、Stage3Activity等。每个活动都有一个按钮(或多个按钮),一旦单击,就会将用户带到下一个活动。我想做的是为这些活动之间的过渡设置动画 我已经在res/anim文件夹中添加了两个XML文件。.xml中的“左推”: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schem

我正在开发一个应用程序,它由许多表示阶段的活动组成。因此有Stage1Activity、Stage2Activity、Stage3Activity等。每个活动都有一个按钮(或多个按钮),一旦单击,就会将用户带到下一个活动。我想做的是为这些活动之间的过渡设置动画

我已经在res/anim文件夹中添加了两个XML文件。.xml中的“左推”:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
现在,当我在活动中移动时,过渡工作应该是正常的。新活动从右到左将旧活动推到视图之外。当用户按下设备上的“后退”按钮时,我想要一个反向效果,但是播放相同的过渡动画。我玩过android:fromXDelta标签,获得了一些非常奇怪的结果,但我只是不知道如何设置它,以便在按下设备上的后退按钮时,新活动(实际上是新调用的旧活动)从左到右推出旧活动


基本上,我想让它看起来像你在通过阶段时向右移动,但当你按下后退按钮时,它应该看起来像你回到(左边)。抱歉,如果这是一个愚蠢的问题,但我真的很困惑,我需要帮助:/

回答我自己的问题有点愚蠢,我想。。。但我想我应该自己收拾残局。我做了一些更广泛的研究,并使用了代码,我很自豪地说我已经解决了这个问题。下面是解决方案,供其他可能需要它的人参考

此应用程序需要四个动画。首先,单击Stage1Activity上的按钮后,我想将该活动滑到左侧并淡出,同时将Stage2Activity从右侧滑到左侧。这需要两个XML文件:

在.xml中向左推

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%" android:toXDelta="0" android:duration="500"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-100%" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%" android:toXDelta="0" android:duration="500"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
push\u right\u out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%" android:toXDelta="0" android:duration="500"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-100%" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%" android:toXDelta="0" android:duration="500"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>

另外两个文件在重写PendingTransition(R.anim.push\u right\u in,R.anim.push\u right\u out)中调用置于返回按钮响应的
onKeyDown
方法中。一个将旧活动滑出,另一个将新活动滑入-但与上一个动画相比方向相反。别忘了更改alpha值,因为这发生在我身上,哈哈


无论如何,这个问题现在已经结束了。抱歉给你添麻烦了!或者不是,因为我至少获得了风滚草成就XD

,但对我来说,问题发生在我不想完成退出活动的情况下(我只想在前一个活动的基础上开始下一个活动)。。。