我正在开发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>
您的帮助将不胜感激。谢谢!
答案 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);
}
输出: -
注意: - 如果你需要它,那么动画只是改变而不是左转,反之亦然......