美文网首页
Android Activity切换动画

Android Activity切换动画

作者: HuBoZzz | 来源:发表于2017-07-30 17:10 被阅读0次

    效果

    Screenrecorder-2017-07-30-04-48-04-614~1.gif

    overridePendingTransition(int enterAnim, int outAnim)

    //参数一是下一个Activity的进入动画,参数二是当前Activity的退出动画

    overridePendingTransition(int enterAnim, int outAnim)

    进入动画

       activity.overridePendingTransition(R.anim.move_left_in, R.anim.move_left_out);
    

    R.anim.move_left_in

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

    R.anim.move_left_out

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

    跳转的时候 A->B

    A 执行 移除动画 R.anim.move_left_out

    B 执行 进入动画 R.anim.move_left_in

    也就是 先执行R.anim.move_left_out 再执行 R.anim.move_left_in

    跳转 B finish 到 A

    B 执行 移除动画 R.anim.move_right_out

    A 执行 进入动画 R.anim.move_right_in

    R.anim.move_right_in

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

    R.anim.move_right_out

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

    • 移动的距离也要有考虑,两个互相搭配会形成一种左右切换的效果

    问题:

    • android:duration="300" 动画时间要一致不然会导致 切换的时候黑屏和动画不生效
    • 执行退出动画的时候需要重写 finish()方法 再添加 activity.overridePendingTransition(R.anim.move_left_in, R.anim.move_left_out);

    相关文章

      网友评论

          本文标题:Android Activity切换动画

          本文链接:https://www.haomeiwen.com/subject/sehklxtx.html