自定義Activity跳轉動畫

這裏的跳轉是指項目中所有Activity跳轉都自定義,而不是針對某個Activity而言。


第一步:準備四個動畫的xml文件:

①A->B時進入B的動畫:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

    android:interpolator="@android:anim/decelerate_interpolator" >


    <scale

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromXScale="0.0"

        android:fromYScale="0.0"

        android:pivotX="69.99999%"

        android:pivotY="100.0%"

        android:toXScale="1.0"

        android:toYScale="1.0" />


    <alpha

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromAlpha="0.0"

        android:toAlpha="1.0" />


</set>


②A->B時退出A的動畫:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

    android:interpolator="@android:anim/accelerate_interpolator" >


    <scale

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromXScale="1.0"

        android:fromYScale="1.0"

        android:pivotX="69.99999%"

        android:pivotY="100.0%"

        android:toXScale="0.0"

        android:toYScale="0.0" />


    <alpha

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromAlpha="1.0"

        android:toAlpha="0.0" />


</set>


③在B返回A時進入A的動畫:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

    android:interpolator="@android:anim/decelerate_interpolator" >


    <scale

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromXScale="1.5"

        android:fromYScale="1.5"

        android:pivotX="50.0%"

        android:pivotY="50.0%"

        android:toXScale="1.0"

        android:toYScale="1.0" />


    <alpha

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromAlpha="0.4"

        android:toAlpha="1.0" />


</set>


④在B返回A時退出B的動畫:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

    android:interpolator="@android:anim/decelerate_interpolator" >


    <scale

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromXScale="1.0"

        android:fromYScale="1.0"

        android:pivotX="50.0%"

        android:pivotY="50.0%"

        android:toXScale="0.4"

        android:toYScale="0.4" />


    <alpha

        android:duration="@android:integer/config_mediumAnimTime"

        android:fromAlpha="1.0"

        android:toAlpha="0.0" />


</set>




第二步:在Style資源文件裏申明:

<style name="ThemeActivity" mce_bogus="1" parent="@android:style/Theme.Light">

        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>

        <item name="android:windowNoTitle">true</item>

    </style>


    <style name="AnimationActivity" mce_bogus="1" parent="@android:style/Animation.Activity">

        <item name="android:activityOpenEnterAnimation">@anim/anim_enter</item>

        <item name="android:activityOpenExitAnimation">@anim/anim_exit</item>

        <item name="android:activityCloseEnterAnimation">@anim/back_enter</item>

        <item name="android:activityCloseExitAnimation">@anim/back_exit</item>

    </style>

【注意!爲兼容2.3版本,最好在默認資源和v14資源裏都申明!】




第三步:在清單文件中application中修改theme:

android:theme="@style/ThemeActivity"



搞定!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章