Activityアニメーションの読み込みと終了
15199 ワード
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つ目の方法をお勧めします.簡単で便利です.