activity動畫主題使用注意事項


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

 

在style里面定義樣式

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    </style>

    <style name="AppTheme.upDown" parent="AppTheme">
        <item name="android:windowAnimationStyle">@style/activityAnimationUpDown</item>
    </style>
    <style name="activityAnimationUpDown" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/slide_in_bottom</item>
        <item name="android:activityOpenExitAnimation">@anim/slide_out_top</item>
        <item name="android:activityCloseEnterAnimation">@anim/slide_in_top</item>
        <item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>
    </style>

 

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

  <activity
            android:name=".Main2Activity"
            android:theme="@style/AppTheme.upDown" ></activity>

 

這四個屬性容易不好記,按照順序我們簡單的記憶口訣是“新進、舊出;舊進、新出”;

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

 

當新、舊兩個activity都是用這個動畫主題時,進入、退出動畫是正常的。(這種情況一般都是我們在Application里面統一指定的所有activity的交互動畫。)

一旦兩者之中,所使用的動畫主題不一致的時候,交互就出現問題了。

 

具體為:

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

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

 

很多都是第二種情況,那么如何讓退出動畫產生效果呢,代碼如下:

void finishActivity() {
        finish();
        //第一個參數是舊activity進入動畫,第二個參數是當前activity退出動畫
        overridePendingTransition(R.anim.slide_in_top, R.anim.slide_out_bottom);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM