Seit API 16 können Sie beim Aufrufen von Context.startActivity (Intent, Bundle) oder verwandten Methoden ein Aktivitätsoptionspaket bereitstellen . Es wird über den Builder ActivityOptions erstellt :
Intent myIntent = new Intent(context, MyActivity.class);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out);
context.startActivity(myIntent, options.toBundle());
Vergessen Sie nicht, die anderen Methoden des Builders ActivityOptions und des ActivityOptionsCompat zu überprüfen, wenn Sie die Support-Bibliothek verwenden.
API 5+:
Für Apps mit API-Level 5+ gibt es die Activities- overridePendingTransition
Methode. Für die eingehenden und ausgehenden Animationen sind zwei Ressourcen-IDs erforderlich. Eine ID von 0
deaktiviert die Animationen. Rufen Sie dies sofort nach dem startActivity
Anruf an.
dh:
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
API 3+:
Sie können die Standardanimation (von rechts einschieben) mit der Intent.FLAG_ACTIVITY_NO_ANIMATION
Flagge in Ihrer Absicht verhindern.
dh:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
Dann müssen Sie in Ihrer Aktivität einfach Ihre eigene Animation angeben.
Dies funktioniert auch für die 1.5-API (Stufe 3).