如何在Android中使用动画效果滑动活动?

时间:2016-08-27 07:26:53

标签: android android-studio animation android-activity android-animation

我正在开发Android应用。我想在活动上实现这样的动画,如果我们离开 activity A ,那么它应该向左滑动,新的 activity B 应该从右侧滑入。当我离开当前 activity B 时,它也应该向右滑动,之前的 activity A 应该从左向右滑动。怎么可能?

顺便说一下,我使用下面的代码,但它没有做任何事情......

overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);

我为动画幻灯片编写了一些XML代码,如下所示:

slide_left_in.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="@android:integer/config_shortAnimTime" />
</set>

slide_left_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromXDelta="0"
        android:toXDelta="-100%p"
        android:duration="@android:integer/config_shortAnimTime" />

</set>

您的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:10)

对于以下动画,您需要这些 4 anim xml .....

right_in.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="@android:integer/config_longAnimTime"/>
</set>

right_out.xml

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

left_in.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="@android:integer/config_longAnimTime"/>
</set>

left_out.xml

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

并将这些代码与AcitvityA ...一起使用

            intent = new Intent(this, AcitvityB.class);
            startActivity(intent);
            overridePendingTransition( R.anim.left_in, R.anim.left_out);

并在AcitvityB中将它们用于BACK

@Override
    public void onBackPressed() {
        super.onBackPressed();
        overridePendingTransition( R.anim.right_in, R.anim.right_out);

    }

输出: -

o

注意: - 如果你需要它,那么动画只是改变而不是左转,反之亦然......