私のAndroidアプリでは、すべてのアクティビティをポップして最初のアクティビティを起動するメソッドを作成しています。
私はこのコードを使用します:
Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
トランジションがまだ左から右のアニメーションであることに気づいたので、アクティビティを開始するときにシステムアニメーションを変更する方法があるかどうかを誰かが知っていますか?
実際には、理想的には右から左への遷移が必要です(戻るボタンがタップされたときなど)
手伝ってくれてありがとう!
CoolMcGrrが正しい場合は、 overridePendingTransition(int enterAnim, int exitAnim)
を使用します。
特に標準の「戻るボタン」トランジションを取得するには、これらをenterAnim
およびexitAnim
トランジションとして使用します。
Push_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<translate Android:fromXDelta="-100%p" Android:toXDelta="0" Android:duration="@Android:integer/config_shortAnimTime"/>
<alpha Android:fromAlpha="0.0" Android:toAlpha="1.0" Android:duration="@Android:integer/config_shortAnimTime" />
</set>
Push_right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<translate Android:fromXDelta="0" Android:toXDelta="100%p" Android:duration="@Android:integer/config_shortAnimTime"/>
<alpha Android:fromAlpha="1.0" Android:toAlpha="0.0" Android:duration="@Android:integer/config_shortAnimTime" />
</set>
ご覧ください Activity.overridePendingTransition() 。
もちろん、これには少なくともバージョン2.0のSDKを実行する必要があります。
ICS以前とICSは異なる組み込みアクティビティ遷移を持っているため、最近問題が発生します。これは、独自のアニメーションとSDKに依存しない定義よりもはるかにクリーンです。
Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION);
this.startActivity(intent);
finish();
これにより、アクティビティが開始され(まだ表示されていません)、新しいアクティビティへの「アクティビティ終了」トランジションが再生されます。
私はこのコードを使用しました:
overridePendingTransition(Android.R.anim.fade_in, Android.R.anim.fade_out);
これらの例は GmailAnimation または LopeAnimations で見ることができます。また、これをもっと見ることができます ブログ 。