首先AppTheme里
<style name="AppTheme" parent="@android:style/Theme">
<!-- 設(shè)置沒有標題 -->
<item name="android:windowNoTitle">true</item>
<!-- 設(shè)置activity切換動畫 -->
<item name="android:windowAnimationStyle">@style/activityAnim</item>
</style>
上面的style中<item name="android:windowAnimationStyle">@style/activityAnim</item>是Activity界面切換動畫的核心夸赫,我們看到又引用了@style/activityAnim扛点。下面是具體代碼
<!-- animation 樣式 -->
<style name="activityAnimation" parent="@android:style/Animation">
<item name="android:activityOpenEnterAnimation">@anim/right_in</item>
<item name="android:activityOpenExitAnimation">@anim/left_out</item>
<item name="android:activityCloseEnterAnimation">@animleft_in</item>
<item name="android:activityCloseExitAnimation">@anim/right_out</item>
</style>
android:activityOpenEnterAnimation:要啟動的Activity的入場動畫
android:activityCloseExitAnimation:要結(jié)束的Activity的出場動畫
android:activityOpenExitAnimation:當前Activity結(jié)束的動畫
android:activityCloseEnterAnimation:棧頂Activity的入場動畫。
right_in.xml文件中定義的動畫。從屏幕右側(cè)移動到屏幕中心
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="100.0%p"
android:toXDelta="0.0" />
</set>
right_out.xml. 從品目的中心移動到屏幕的右側(cè)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="0.0"
android:toXDelta="100.0%p" />
</set>
left_in.xml 從屏幕左側(cè)移動到屏幕中心(注意:在微信中我們看到Actiovity界面無論從左側(cè)退出纸泄,還是從左側(cè)進入蜂筹,都是稍微的移動,而不是移動整個屏幕骗随,所以我在這里定義了移動30%蛤织, 如果想移動整個屏幕的距離,可以修改為100%)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="-30.0%p"
android:toXDelta="0.0" />
</set>
left_out.xml 從屏幕中心移動到屏幕左側(cè)(移動距離同left_in)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="0.0"
android:toXDelta="-30.0%p" />
</set>
windowIsTranslucent屬性導(dǎo)致Activity動畫不生效的問題
<style name="AppTheme" parent="@android:style/Theme">
...
<item name="windowIsTranslucente">true</item>
...
</style>
如果鸿染,我們在某個界面需要這個屬性指蚜,可以為其單獨設(shè)置,比如涨椒,啟動頁面為了防止黑屏摊鸡,我們會設(shè)置這個屬性,此時蚕冬,我們可以為其單獨設(shè)置一個theme, 當然這樣設(shè)置了后免猾,如果需要改變其界面切換動畫,我們就可以通過復(fù)寫overridePendingTransition(int enterAnim, int exitAnim)方法來設(shè)置囤热。