zoukankan      html  css  js  c++  java
  • Activity左边滑出,右边滑入的动画切换

    Activity左边滑出,右边滑入的动画切换

    转载请注明出处:http://blog.csdn.net/u012301841/article/details/46920809

    大家都知道Android系统默认Activity间的动画切换效果为:左边滑出、右边滑入。按返回键的动画切换效果为:左边滑入,右边滑出。可是如今的手机制造商都定制自己的Rom。像MI UI和锤子OS等之类的手机。导致Android原生的切换动画在不同的手机上发生了改变。有时候我们须要让他变回原生的状态。

    这是我在网上盗的一张图,它清晰的告诉我们Android的位移动画的变换方式:
    这里写图片描写叙述

    以下就是详细的实现过程了:

    写动画文件

    在 res文件夹创建anim文件夹, 然后在文件夹创建动画的xml文件:out_to_left.xml (从左边退出动画) 、in_from_right.xml(从右边进入动画)
    out_to_right.xml(从右边退出动画)、in_from_left.xml(从左边进入动画)

    in_from_left.xml

    <?

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

    in_from_right.xml

    <?

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

    out_to_left.xml

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

    out_to_right.xml

    <?

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

    > <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500" android:fromXDelta="0%p" android:toXDelta="100%p" android:interpolator="@android:anim/accelerate_interpolator" > </translate>

    写主题文件

    在values文件夹中打开style.xml的文件,在当中插入一个style节点,声明一个主题。

        <style name="Anim_fade" parent="android:Theme.NoTitleBar">
            <item name="android:windowAnimationStyle">@style/fade</item>
        </style>

    能够看到。以上主题的父主题是@android :style/Theme.NoTitleBar, 就是继承自系统主题的大部分属性。
    当中有一个”android:windowAnimationStyle”属性是由我们自己定义的,定位的位置相同在values文件夹下的style文件里。

        <style name="fade" parent="@android:style/Animation.Activity">
            <item name="android:activityOpenEnterAnimation">@anim/in_from_right</item>
            <item name="android:activityOpenExitAnimation">@anim/out_to_left</item>
            <item name="android:activityCloseEnterAnimation">@anim/in_from_left</item>
            <item name="android:activityCloseExitAnimation">@anim/out_to_right</item>
        </style>
    

    以下重点介绍这当中的几个属性的含义,大家网上搜一下也是能够的。我就直接将我所了解的说一下了:
    如今如果有两个Activity A 和 B,在A中能够启动B。

    同一时候,A和B的theme属性均设置为上面定义的属性。那么,以上动画的发生时机例如以下:
    (1)当A启动B时,A退出。B进入,A退出时的动画名称为android:activityOpenExitAnimation。动画文件为
    R.anim.out_to_left,B进入时的动画名称为android:activityOpenEnterAnimation, 动画文件为R.anim.in_from_right。
    (2)当B结束时,B退出,A进入。B退出的动画名称为android:activityCloseExitAnimation, 动画文件为R.anim.out_to_right, A进入时的动画名称为android:activityCloseEnterAnimation, 动画文件为R.anim.in_from_left。

    以上所有ok了,我们就能看到想要的效果了。约了基友网上打LOL的,让他等了2个多小时了。预计等会会被骂死,效果图就不贴了,代码已上传,须要的话能够下载看看。

    代码下载:http://download.csdn.net/detail/u012301841/8907457

  • 相关阅读:
    Finding Action Tubes
    Modeling Video Evolution For Action Recognition
    GBrank_问题列表
    annotation code for human pose estimation
    什么是 kNN 算法?
    什么是强化学习?
    什么是张量?
    什么是遗传/进化算法?
    什么是贝叶斯网络?
    什么是机器学习?
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7202718.html
Copyright © 2011-2022 走看看