So erreichen Sie eine Animation von rechts nach links, um die Aktivität zu starten
Lesezeit: 7 Minuten
Ich arbeite an einer Demoanwendung, in der ich Animationen anwenden möchte, wenn eine App gestartet wird activity. Ich habe den folgenden Code geschrieben, aber dies dient dazu, die Aktivität von links nach rechts zu animieren.
Ihre zweite Aktivität wird von rechts nach links eingefügt.
Zum besseren Verständnis, wie man mit den fromXDelta- und toXDelta-Werten für die Animationen herumspielen kann, ist hier eine sehr einfache Illustration der Werte:
Auf diese Weise können Sie leicht nachvollziehen, warum Sie android:fromXDelta=”0%” und android:toXDelta=”-100%” für Ihre aktuelle Aktivität hinzufügen. Und das liegt daran, dass Sie möchten, dass es von 0% auf die Position -100% geht.
[EDIT]
Wenn Sie also ActivityB von ActivityA aus öffnen möchten, gehen Sie wie folgt vor (angenommen, Sie haben eine Schaltfläche):
Wenn Sie nun die „rückwärts“-Animation der ersten haben möchten, wenn Sie Aktivität B verlassen, benötigen Sie zwei neue Animationsdateien und etwas Code in der onBackPressed-Methode von ActivityB, wie folgt:
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left);
}
Wenn Sie die Aufwärtsnavigation aktiviert haben, müssen Sie auch in diesem Fall die Animation hinzufügen:
Sie aktivieren die UP-Navigation wie folgt:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
Und so gehen Sie auch in diesem Fall mit der Animation um:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
//NavUtils.navigateUpFromSameTask(this);
finish();
overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left);
return true;
}
return super.onOptionsItemSelected(item);
}
Beachten Sie auch, dass die Animation Ihres Telefons möglicherweise deaktiviert ist, selbst wenn Ihr Code in Ordnung ist. Gehen Sie zum Einschalten wie folgt vor:
Öffnen Sie Einstellungen und gehen Sie zu Entwickleroptionen
Stellen Sie sicher, dass es aktiviert ist (indem Sie die Umschalttaste oben rechts verschieben)
Scrollen Sie nach unten und tippen Sie unter Zeichnen nacheinander auf diese Optionen: Windows-Animationsskalierung, Übergangsanimationsskalierung und Animator-Dauerskalierung
Wählen Sie “Animationsmaßstab 1x”
Hilft das?
Was muss ich schreiben, um die Aktivität und die Zielaktivität zu starten?
– N Sharma
17. Oktober 2014 um 18:49 Uhr
Unbedingt. Ich werde das auch hinzufügen
– Mike
17. Oktober 2014 um 18:56 Uhr
@Mike können wir das eingebaute android.R.anim.slide_in_left und android.R.anim.slide_out_right verwenden?
– Utsav
7. Dezember 2016 um 16:34 Uhr
Die ersten beiden Animationen können für den Rückübergang wiederverwendet werden, einfach austauschen? @Mike
– abdu
31. Mai 2018 um 7:41 Uhr
@abdu versuch es 🙂
– Mike
4. Juni 2018 um 16:35 Uhr
Klänge von Polaris
overridePendingTransition sollte in der “Ziel”-Aktivität aufgerufen werden. Zum Beispiel: Wenn Sie von Aktivität A -> B gehen, würden Sie das eingeben overridePendingTransition rufen Sie an onCreate der Aktivität B.
Denken Sie daran, dass Sie die Anzeige von Animationen nicht erzwingen können, wenn der Benutzer die Animation auf Systemebene deaktiviert hat.