Activityアニメーションの読み込みと終了


Activityアニメーションの読み込みと終了


Androidシステム5.0以下では、activityがアニメーションに入ると中央から周囲に広がり、終了すると四方から中央に集まり、最後に消える.この効果はよくないと思う場合がありますが、Activityのアニメーションへのアクセスと終了を指定できます.

方式一


現在Activity 1がActivity 2にジャンプしている場合、ジャンプ中にActivity 2のアニメーションへのアクセス方法を指定できますか?overridePendingTransition(R.anim.activity_slide_enter_bottom,R.anim.activity_alpha_exit)を使用します.方法を実装します.この方法はStartActivityの後に書かれていることに注意してください.
  startActivity(new Intent(Activity1.this,Activity2.class));
    // :Activity2    :Activity1 
    overridePendingTransition(R.anim.activity_slide_enter_bottom, R.anim.activity_alpha_exit);

戻るキーをクリックすると、Activity 2が破棄される場合、Activity 2が終了するアニメーションを指定してoverridePendingTransition(R.anim.activity_alpha_enter,R.anim.activity_slide_exit_bottom)を使用することもできます.メソッドを実装します.このメソッドはfinish()の後に書かれていることに注意してください.
   @Override
    public void finish() {
        super.finish();
    // :Activity1 , :Activity2 
        overridePendingTransition(R.anim.activity_alpha_enter, R.anim.activity_slide_exit_bottom);
    }

次に、カスタムアニメーションxmlファイルを見てみましょう.
1. res anim 
2. anim activity_slide_enter_bottom.xml,activity_alpha_exit.xml,activity_alpha_enter.xml,
  activity_slide_exit_bottom.xml 

activity_slide_enter_bottom.xmlコードは以下の通りです.
 
    <set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromYDelta="100%"
        android:toYDelta="0" />

    <alpha
        android:duration="300"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

    set>

activity_slide_exit_bottom.xmlコードは以下の通りです.
  
    <set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="300"
        android:fromYDelta="0"
        android:toYDelta="100%" />

    <alpha
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
    set>

activity_alpha_exit.xmlコードは以下の通りです.

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

    <alpha
        android:duration="3000"
        android:fromAlpha="1.0"
        android:toAlpha="0" />

    set>

activity_alpha_enter.xmlコードは以下の通りです.

    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    <alpha
        android:duration="300"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
    set>

方式2


1.AndroidManifest.xmlファイルでActivityを設定するスタイル
     <activity
            Android:name="com.zhiming.Activity2"
            android:theme="@style/ThemeActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            intent-filter>
        activity>

2.valuesフォルダの下にあるthemes.xmlカスタムActivityアニメーショントピックへのアクセスと終了、

    <resources>

        <style name="ThemeActivity" parent="android:Theme.Light.NoTitleBar">
            <item name="android:windowAnimationStyle">@style/AnimationActivity
        style>

    resources>

3.valuesフォルダの下にあるstyles.xmlでActivityのアニメーションスタイルの読み込みと終了をカスタマイズ

    <style name="AnimationActivity" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/activity_slide_enter_right
        "android:activityOpenExitAnimation">@anim/activity_slide_exit_left
        "android:activityCloseEnterAnimation">@anim/activity_slide_enter_left
        "android:activityCloseExitAnimation">@anim/activity_slide_exit_right
    style>
activityOpenEnterAnimation  Activity2 
activityOpenExitAnimation   Activity1 
activityCloseEnterAnimation Activity2 ,Activity1    
activityCloseExitAnimation  Activity2 

4.res/animフォルダの下にactivity_を新規作成slide_enter_right.xml,activity_slide_exit_left.xml,activity_slide_enter_left.xml activity_slide_exit_right.xmlファイル
activity_slide_enter_right.xmlコードは以下の通りです.

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

        <translate
            android:duration="300"
            android:fromXDelta="100%"
            android:toXDelta="0" >
        translate>

        <alpha
            android:duration="300"
            android:fromAlpha="0.0"
            android:toAlpha="1.0" />

    set>

activity_slide_exit_left.xmlコードは以下の通りです.

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

        <translate
            android:duration="300"
            android:fromXDelta="0"
            android:toXDelta="-100%" >
        translate>

        <alpha
            android:duration="300"
            android:fromAlpha="1.0"
            android:toAlpha="0" />

    set>

activity_slide_enter_left.xmlコードは以下の通りです.

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

        <translate
            android:duration="300"
            android:fromXDelta="-100%"
            android:toXDelta="0" >
        translate>

        <alpha
            android:duration="300"
            android:fromAlpha="0"
            android:toAlpha="1" /> 

    set>

activity_slide_exit_right.xmlコードは以下の通りです.

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

        <translate
            android:duration="300"
            android:fromXDelta="0"
            android:toXDelta="100%" >
        translate>

        <alpha
            android:duration="300"
            android:fromAlpha="1.0"
            android:toAlpha="0" />

    set>

まとめ:この2つの方法よりも、2つ目の方法をお勧めします.簡単で便利です.