本篇文章簡(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