Animationen können das Navigieren durch die Apps schon gut verhübschen – dem Nutzer fallen die meisten dieser Animationen nicht auf, weil sie doch sehr dezent gehalten sind, wie auch die standart Animation für Übergänge zwischen Activities.

Hier möchte ich ein kleines Tutorial veröffentlichen, wie man eigene Animationen erstellt, die automatisch beim Öffnen / Schließen einer Activity aufgerufen werden.

Intent intent = new Intent(this, OptionsActivity.class);
startActivity(intent);

Ist die normale Vorgehensweise zum Starten einer weiteren Activity (in diesem Fall die OptionsActivity.class).

Seit API Version 5 stellt Google eine Methode bereit, welche es erlaubt die nach startActivity(Intent) (oder auch finish()) aufgerufene Übergangsanimation zu überschreiben:

overridePendingTransition(int enterAnim, int exitAnim)

Wobei die enterAnim diejenige Animation ist, welche die neue Activity (im Bsp. OptionsActivity) animiert, während exitAnim angibt, was mit der aktuellen Activity passieren soll.

Hier kann man einfach Animationen in XML definieren, diese unter res>anim speichern und via R.anim.res-ID_der_anim abrufen.

Bevor ich euch nun ein paar coole Animationen bzw. Kombinationen von Animationen zeige, möchte ich noch erwähnen, dass es gerade bei ausgefalleneren Animationen keine schlechte Idee ist, eine Option einzubauen, die Animationen zu deaktivieren 😉

Ich persönlich handhabe das so, dass ich zwei Methoden habe: openActivityAnimation() und exitActivityAnimation(), welche jeweils die CheckBox-Einstellungen abfragen und dann die jeweilige Animation startet:

[…]

Intent intent = new Intent(this, OptionsActivity.class);
startActivity(intent);

[…]

public void openActivityAnimation() {
 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

if(prefs.getBoolean(„cb_animations“, true))
overridePendingTransition(R.anim.slide_in_to_left, R.anim.slide_out_to_left);

}

 

Nun zu den Animationen:

Ich persönlich  nutze 4 Animationen, um sämtliche Übergänge innerhalb meiner App zu verwirklichen.

 

  • Starten einer neuen Activity: overridePendingTransition(R.anim.slide_in_to_left, R.anim.slide_out_to_left);
  • Schließen der Activity: overridePendingTransition(R.anim.slide_in_to_right, R.anim.slide_tilt);

 

  1. slide_in_to_left sieht so aus, dass die Activity von Rechts nach Links eingeschoben wird
  2. slide_out_to_left schiebt die Activity nach Links aus dem Bildschirm heraus
    1. Kombiniert wirkt es also so, als ob die neue Activity die Alte wegschiebt und sich dann darüber legt.
  3. slide_in_to_right schiebt die neue Activity von links ins Bild
  4. slide_tilt ist die wohl ‚fancieste‘: Diese kippt die Activity nach Unten weg, wobei der Drehpunkt ca. die untere rechte Bildschirmecke ist. Gleichzeitig wird sie während des „Tilt’s“ auch auch noch transparent.
    1. Diese beiden kombiniert ist eine hübsche Zurück-Animation. Die aktuelle Activity fadet aus und kippt weg, während  die alte sich bereits darunter schiebt.

Hierbei müssen die Animations-Dauern natürlich abgestimmt sein.

 

Download:

Anbei diese 4 Animationen zum Download, so wie ich sie nutze:

https://mega.co.nz/#F!iYtwhQ4Q!NoHPAjfQ7p8WgQArCZkccg

 

Wenn dir diese kleine Anleitung für das Nutzen von Übergangsanimationen gefallen hat, lass es mich doch in den Kommentaren wissen!