1. 程式人生 > 實用技巧 >android activity動畫anim

android activity動畫anim

當我們不滿足於系統預設的activity動畫互動方式,我們可以通過在主題裡面,指定activity動畫樣式來實現自定義互動效果

在style裡面定義樣式

<style name="DarkTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowAnimationStyle">@style/activityAnimationUpDown</item>
</style>
<style name="activityAnimationUpDown"
parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@android:anim/fade_in</item> <item name="android:activityOpenExitAnimation">@android:anim/fade_in</item> <item name="android:activityCloseEnterAnimation">@android:anim/fade_out</
item> <item name="android:activityCloseExitAnimation">@android:anim/fade_out</item> </style>

在androidManifest.xml裡面,對指定的activity使用該主題

<activity android:name=".MyActivity"
    android:theme="@style/DarkTheme.upDown" />

<item name="android:activityOpenEnterAnimation">@android:anim/fade_in</item>
<item name="android:activityOpenExitAnimation">@android:anim/fade_in</item>
<item name="android:activityCloseEnterAnimation">@android:anim/fade_out</item>
<item name="android:activityCloseExitAnimation">@android:anim/fade_out</item>

按照順序我們簡單的記憶口訣是“新進、舊出;舊進、新出”;

不用擔心順序搞混的問題,android studio重新排版的順序就是按照這個順序來的。

當新、舊兩個activity都是用這個動畫主題時,進入、退出動畫是正常的。(這種情況一般都是我們在Application裡面統一指定的所有activity的互動動畫。)
一旦兩者之中,所使用的動畫主題不一致的時候,互動就出現問題了。

具體為:
舊activity沒有、新activity有主題;進入動畫用新的,退出動畫用舊的 (退出動畫“失效”)
舊activity有主題,新activity沒有:進入動畫用舊的, 退出動畫用新的 (進入動畫“失效”)