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).
R.anim.fade_in
immer noch eine XML-Dateianimation, die wir haben sollenres\anim
?Sie müssen die OverridePendingTransition-Methode verwenden, um dies zu erreichen. Diese befindet sich in der Activity-Klasse . Beispielanimationen im res / anim-Ordner des Apidemos-Beispiels. Prüfen Sie. Mehr als die Demo in ApiDemos / App / Activity / Animation überprüfen .
Beispiel:
quelle
super.onResume();
, bekam: "android.util.SuperNotCalledException: Aktivität {com.abc.MyActivity} hat nicht zu super.onResume () aufgerufen"Hat ein Tutorial geschrieben, damit Sie Ihre Aktivitäten animieren können.
Genießen:
http://blog.blundellapps.com/animate-an-activity/
quelle
Jelly Bean unterstützt dies mit der ActivityOptions.makeCustomAnimation () -Methode. Da es sich nur um Jelly Bean handelt, ist es für praktische Zwecke natürlich ziemlich wertlos.
quelle
ActivityOptionsCompat
Sie diese Option, wenn Sie auf Pre-JellyBean abzielen.