APIレベル5から、新しいアクティビティを開始するときに通常のアニメーションが適用されないように、インテントにフラグを指定できることを認識しています。
myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
しかし、私の質問は、Android 1.6をサポートするアプリで同じことを達成する方法はありますか?
これを使用します:開始しているActivity
内のgetWindow().setWindowAnimations(0);
。
新しいバージョンでは、アクティビティを開始した直後に、遷移を0,0でオーバーライドする必要があります。
Intent i = new Intent(this, YourNewActivity.class);
startActivity(i);
overridePendingTransition(0,0);
2.1と4.0.3でこれを試しましたが、うまくいきました。 =)
私はそれをドキュメントで見つけました ここ
このソリューションは私のために働いた(Android2.2):
Intent intent = new Intent(getContext(), YourClass.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
参考までに、私は4.4.2を使用していますが、これが機能することがわかった唯一のものです。
アニメーションが開くのを防ぐには:起動アクティビティのonCreate()に、overridePendingTransition(0,0)を追加します。
アニメーションが閉じるのを防ぐには: finish()の後、すぐにoverridePendingTransition(0,0)を呼び出します。
これらは機能しません(少なくとも私の4.4.2ビルドでは機能しません):( 1)onCreate()でgetWindow()。setWindowAnimations(0)を呼び出します(ゼロ以外の数値を渡すことは機能しますが、それ以降は醜いハックですresId)を期待しており、(2)startActivity()の直後にoverridePendingTransition(0,0)を呼び出す-アニメーションはまだ存在しています。
onCreate of Activityに以下のコードを配置します:
getWindow().setWindowAnimations(0);