Transition 動(dòng)畫實(shí)現(xiàn)Activity跳轉(zhuǎn)動(dòng)畫

本篇文章簡(jiǎn)單根據(jù)Transition 實(shí)現(xiàn)界面的跳轉(zhuǎn)動(dòng)畫。共享VIew的部分請(qǐng)移步到Android 5.0 Transition動(dòng)畫 之圖片傳遞View共享

具體 Demo google-simple-topeka

官方支持5.0以上,網(wǎng)上有很多4.x的實(shí)現(xiàn),大家可以自行搜索

如有不正確的地方,歡迎指正。

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

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

2.定義動(dòng)畫:

Activity的進(jìn)入和退出動(dòng)畫,在res/transition/創(chuàng)建動(dòng)畫xml

Transition的動(dòng)畫類型:

Fade 漸顯
Slide 側(cè)滑
Explode 分裂 具體下圖:

20161031101107_115.gif

圖來自參考

動(dòng)畫文件

res/transition/signin_enter.xml

<!--slide做了一個(gè)側(cè)滑效果。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" />
        <!--表示只針對(duì)狀態(tài)欄-->
        <!--<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.兩種定義動(dòng)畫方式:

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.跳轉(zhuǎn)方式:

不能簡(jiǎn)單的startActivity啦

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

4.完成

gif5新文件.gif

參考:
Android 過渡動(dòng)畫原來可以這樣寫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容