【问题标题】:OverrideingPendingTransition android implementation覆盖PendingTransition android实现
【发布时间】:2017-05-31 09:21:40
【问题描述】:

我正在编写一些代码来覆盖Activity 的默认进入和退出动画。

我正在使用 OverridePendingTransition 来完成这项任务 在这里,我正在从 Activity1 过渡到 Activity2。

我想要的是,Activity1 应该从右向左移动,而 Activity2 应该出现在它后面,没有任何动画。

我怎样才能做到这一点?

这里我试过把0输入Animation,但是不行。

【问题讨论】:

    标签: android animation android-activity transitions overridependingtransition


    【解决方案1】:

    您只需要通过从 Activty1 移动到 Activity2 来调用动画函数。

    public class AnimUtils {
    /*Right to Left Slide Animation*/
    public static void rightToLeftAnimation(Activity activity) {
        activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
    }
    /*Left to Right*/
    public static void leftToRightAnimation(Activity activity) {
        activity.overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
    }}
    

    创建一个 res 目录名作为 anim。并将 .xml 文件放在该目录中。

    这里是 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="500"
        android:fromXDelta="100%"
        android:toXDelta="0%" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
    

    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="500"
        android:fromXDelta="0%"
        android:toXDelta="-100%" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
    

    还有 slide_in_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="500"
        android:fromXDelta="-100%"
        android:toXDelta="0%" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
    

    还有 slide_out_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="500"
        android:fromXDelta="0%"
        android:toXDelta="100%" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
    

    【讨论】:

    • 感谢您的回答。但我只想为退出活动制作动画。进入 Activity 应该保持没有任何动画
    • 在上面的例子中,你可以改变动画和活动的变化在后面和上面。只是打和跟踪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2023-03-21
    • 2021-11-16
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多