美文网首页
Transition 动画实现Activity跳转动画

Transition 动画实现Activity跳转动画

作者: 一洼世界 | 来源:发表于2017-06-14 12:03 被阅读429次

    本篇文章简单根据Transition 实现界面的跳转动画。共享VIew的部分请移步到Android 5.0 Transition动画 之图片传递View共享

    具体 Demo google-simple-topeka

    官方支持5.0以上,网上有很多4.x的实现,大家可以自行搜索

    如有不正确的地方,欢迎指正。

    1.首先在style中添加支持Transations

    <item name="android:windowActivityTransitions">true</item>
    

    2.定义动画:

    Activity的进入和退出动画,在res/transition/创建动画xml

    Transition的动画类型:

    Fade 渐显
    Slide 侧滑
    Explode 分裂 具体下图:

    20161031101107_115.gif

    图来自参考

    动画文件

    res/transition/signin_enter.xml

    <!--slide做了一个侧滑效果。android:slideEdge="left"  指定方向。   -->
    <slide xmlns:android="http://schemas.android.com/apk/res/android" android:slideEdge="left">  
        <targets>
            <!--excludeId:不包括的界面ID-->
            <target android:excludeId="@android:id/statusBarBackground" />
            <!--表示只针对状态栏-->
            <!--<target android:targetId="@android:id/statusBarBackground"/>-->  </targets>
        </targets>
    </slide>
    

    res/transition/signin_exit.xml

    <transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
        <slide android:slideEdge="left">
            <targets>
                <target android:excludeId="@android:id/statusBarBackground" />
            </targets>
        </slide>
        <fade>
            <targets>
                <target android:targetId="@id/fragment_sign_in_content" />
            </targets>
        </fade>
    </transitionSet>
    

    2.两种定义动画方式:

    1、getWindow().setExitTransition(transition);
    2、通过主题定义

    这里采用第二种:

    style.xml

     <style name="Topeka.SignInActivity">
            <item name="android:windowEnterTransition">@transition/signin_enter</item>
            <item name="android:windowExitTransition">@transition/signin_exit</item>
        </style>
    

    androidManifest.xml:

     <activity android:name=".activity.SignInActivity"
                      android:theme="@style/Topeka.SignInActivity"
                      android:windowSoftInputMode="adjustPan">
     </activity>
    

    3.跳转方式:

    不能简单的startActivity啦

    Intent starter = new Intent(activity, SignInActivity.class);
    ActivityCompat.startActivity(activity,
                    starter,
    ActivityOptionsCompat.makeSceneTransitionAnimation(activity).toBundle());
    

    4.完成

    gif5新文件.gif

    参考:
    Android 过渡动画原来可以这样写

    相关文章

      网友评论

          本文标题:Transition 动画实现Activity跳转动画

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