カスタムの遷移アニメーションでアクティビティを開始しようとしています。これを行うためにこれまでに見つけた唯一の方法(前のアクティビティでonPendingTransition()を使用せずに)は、アクティビティでカスタムテーマを使用し、activityOpenEnterAnimation、taskOpenEnterAnimation、windowEnterAnimation、またはwindowAnimationStyleを定義してアニメーションを設定することです。しかし、これらの属性はどれも私にとってはうまくいきません。いくつかの実験により、次の結果が得られました
WindowAnimationStyle属性をactivityOpenEnterAnimation、taskOpenEnterAnimation、windowEnterAnimation、またはwindowAnimationStyleの値を定義するカスタムスタイルに設定すると、アクティビティの開始時に発生するデフォルトの遷移アニメーションを削除できます。指定された実際の値を使用して遷移アニメーションを表示しませんが、少なくともデフォルトのアニメーションは表示されません。
参照ドキュメント here によると、
ActivityOpenEnterAnimationを使用して、アクティビティの開始時にアニメーションを定義できるはずです。しかし、今のところ成功していません。
何か案は?
私は現在の私のプロジェクトでこれを使用していますが、基本的にはとても簡単です。次のように、styles.xmlで新しいアニメーションスタイルを定義します。
<!-- just defines top layer "Animation" -->
<style name="Animation" />
<!-- the animations must have been defined in your "anim" folder, of course -->
<style name="Animation.MyAwesomeAnimation" parent="Android:style/Animation.Activity">
<item name="Android:activityOpenEnterAnimation">@anim/myawesomeanimation_enter</item>
<item name="Android:activityOpenExitAnimation">@anim/hold_long</item>
<item name="Android:activityCloseEnterAnimation">@anim/hold_long</item>
<item name="Android:activityCloseExitAnimation">@anim/myawesomeanimation_exit</item>
</style>
次に、このスタイルをテーマ(themes.xml)に設定します。
<style name="Theme.MyAwesomeTheme" parent="Theme.Default">
<item name="Android:windowAnimationStyle">@style/Animation.MyAwesomeAnimation</item>
</style>
そして、これらのテーマをAndroidManifest.xmlで好きなすべてのアクティビティに設定するだけです。
<activity
Android:name=".MyAwesomeActivity"
Android:theme="@style/Theme.MyAwesomeTheme" />
さあ、アクティビティアニメーションをお楽しみください! :-D