Android默认切换页面的特效:
接下来我想修改成左右滑动的特效:
这时候需要用到一个方法:
public void overridePendingTransition (int enterAnim, int exitAnim)
enterAnim :Activity进入屏幕时的动画
exitAnim :Activity退出屏幕时的动画
且overridePendingTransition 方法必须在startActivity()或者 finish()方法的后面。
Activity的位置定义:
如图所示,以手机屏幕左下角为原点,分别有X轴和Y轴,当Activity在X轴值为-100%p时,刚好在屏幕的左边(位置1),当X轴值为0%p时,刚好再屏幕内(位置2),当X=100%p时刚好在屏幕右边(位置3)。
当我们从主界面切换到次界面时,首先让要退出的Activity从位置2移动到位置1,同时让进入的Activity从位置3移动位置2,这样就能实现从右到左的切换效果。
1.首先定义2个动画,在 app的res目录下创建anim目录, 然后在目录里创建动画的xml文件:out_to_left.xml (从左边退出动画) 、in_from_right.xml(从右边进入动画)
out_to_left.xml (从 位置2 移动到 位置1)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:duration="260"
android:fromXDelta="0%p"
android:toXDelta="-100%p"></translate>
</set>
in_from_right.xml (从 位置3 移动到 位置2)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:duration="260"
android:fromXDelta="100%p"
android:toXDelta="0%p"></translate>
</set>
2.再去app/src/mian/java下的MainActivity.java中添加一句代码
//设置切换动画,从右边进入,左边退出
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
该方法必须在startActivity()方法的后面。
当我们从次界面切换到主界面时,首先让要退出的Activity从位置2移动到位置3,同时让进入的Activity从位置1移动位置2,这样就能实现从左到右的切换效果。
1.首先定义2个动画,在 app的res目录下创建anim目录, 然后在目录里创建动画的xml文件:out_to_right.xml (从右边退出动画) 、in_from_left.xml(从左边进入动画)
out_to_right.xml (从 位置2 移动到 位置3)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:duration="260"
android:fromXDelta="0%p"
android:toXDelta="100%p"></translate>
</set>
in_from_left.xml (从 位置1 移动到 位置2)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:duration="260"
android:fromXDelta="-100%p"
android:toXDelta="0%p"></translate>
</set>
2.再去app/src/mian/java下的MainActivity2.java中添加一句代码
//设置切换动画,从左边进入,右边退出
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
该方法必须在finish()方法的后面。
这样就实现了左右切换的效果。