Activity常用跳转效果

Activity的切换需要在startActivity()或finish()函数之后紧跟函数(Fragment开头加getActivity(), 其他的将Context的对象强转为Activity):

          overridePendingTransition(int enterAnim, int exitAnim);

          getActivity().overridePendingTransition(int enterAnim, int exitAnim);

          ((Activity) context).overridePendingTransition(int enterAnim, int exitAnim);

其中,enterAnim和exitAnim是位于res/anim中的定义切换效果的文件,enterAnim定义了进入屏幕的Activity的动画效果,exitAnim定义了移出屏幕的动画效果。

Android的开发过程中,屏幕的坐标定义为:左上角为原点(0,0) ,水平向右为X正半轴,竖直向下为Y正半轴,而Activity的原点坐标(0,0)也是位于左上角;

当Activity从屏幕的右侧进入屏幕的过程,相当于Activity的X坐标由100%p到0的过程(见下图灰色示意部分,对应文件push_left_in.xml);

当Activity从屏幕的左侧进入屏幕的过程,相当于Activity的X坐标由-100%p到0的过程;(见下图粉色示意部分,对应文件push_right_in.xml);

当Activity从屏幕的右侧移出屏幕的过程,相当于Activity的X坐标由0到100%p的过程;(见下图红色示意部分,对应文件push_left_out.xml);

当Activity从屏幕的左侧移出屏幕的过程,相当于Activity的X坐标由0到-100%p的过程;(见下图绿色示意部分,对应文件push_right_out.xml);



push_left_in.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromXDelta="100%p"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toXDelta="0"/>

</set>

----------------------------------------------------------------------------------------------------------------------

push_left_out.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromXDelta="0"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toXDelta="100%p"/>

</set>

----------------------------------------------------------------------------------------------------------------------

push_right_in.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromXDelta="-100%p"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toXDelta="0"/>

</set>

----------------------------------------------------------------------------------------------------------------------

push_right_out.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromXDelta="0"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toXDelta="-100%p"/>

</set>



当Activity从屏幕的上方进入屏幕的过程,相当于Activity的Y坐标由-100%p到0的过程(见下图绿色示意部分,对应文件push_top_in.xml);

当Activity从屏幕的下方进入屏幕的过程,相当于Activity的Y坐标由100%p到0的过程(见下图紫色示意部分,对应文件push_bottom_in.xml);

当Activity从屏幕的上方移出屏幕的过程,相当于Activity的Y坐标由0到-100%p的过程(见下图橙色示意部分,对应文件push_top_out.xml);

当Activity从屏幕的下方移出屏幕的过程,相当于Activity的Y坐标由0到100%p的过程(见下图灰色示意部分,对应文件push_bottom_out.xml);


push_top_in.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromYDelta="-100%p"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toYDelta="0"/>

</set>

----------------------------------------------------------------------------------------------------------------------

push_top_out.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate

        android:duration="270"

        android:fromYDelta="0"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toYDelta="-100%p" />

</set>

----------------------------------------------------------------------------------------------------------------------

push_bottom_in.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromYDelta="100%p"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toYDelta="0"/>

</set>

----------------------------------------------------------------------------------------------------------------------

push_bottom_out.xml

<?xml version="1.0"encoding="utf-8"?>

<setxmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="270"

        android:fromYDelta="0"

        android:interpolator="@android:anim/accelerate_interpolator"

        android:toYDelta="100%p"/>

</set>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值