Android中Activity頁面轉場,分爲5.0之前和5.0之後。當然5.0之前的轉場用法在5.0之後依然適用。本次我們先介紹下5.0之前的轉場效果,5.0之後的將在下次進行介紹。
其實5.0之前的轉場動畫是通過public void overridePendingTransition(int enterAnim, int exitAnim)
這個方法來實現轉場效果的。其中第一個參數爲進入的動畫,第二個參數爲退出的動畫。動畫是放在res->anim目錄下,其實android自身也幫我們寫了很多動畫,我們可以通過android.R.anim.xxx進行調用。
我們列一段android.R.anim.fade_in的示例代碼:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@interpolator/decelerate_quad"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_longAnimTime" />
其實我們分析這段代碼可以發現其實就是一個透明度漸變的動畫。
所謂無圖無真相,我們先展示一個我們實現的效果。
可以看到Activity的轉場效果爲左邊進入右邊離開,其實現效果爲在startActivity(intent);
之後加入了overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
,這樣就實現了從左邊進入的效果。而右邊出的效果則需要在Activity finish的時候調用overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
來實現。
其實我們需要哪些效果我們可以根據需求來寫我們自己的anim來使用即可。
我在Demo中也寫了例子,包括淡入淡出、左進右出、右進左出、中心縮放、上進下出、下進上出等例子。
以上就是對Android 5.0以下轉場效果的記錄。
國際管理,源碼地址:CDemo源碼,anim位於CLibrary->res->anim下