美文网首页
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