it-swarm.com.de

Starten Sie eine neue Aktivität ohne Übergangsanimation in Android 1.6

Mir ist bekannt, dass es ab API-Ebene 5 möglich ist, ein Flag anzugeben, um zu verhindern, dass die normale Animation beim Start einer neuen Aktivität angewendet wird:

myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

Meine Frage ist jedoch: Gibt es eine Möglichkeit, dasselbe in einer App zu erreichen, die Android 1.6 unterstützt?

29
Matt Colliss

Verwenden Sie Folgendes: getWindow().setWindowAnimations(0); innerhalb der Activity, die gerade gestartet wird.

20
Wroclai

In den neueren Versionen möchten Sie den Übergang kurz nach dem Start der Aktivität mit 0,0 überschreiben:

Intent i = new Intent(this, YourNewActivity.class); 
startActivity(i);
overridePendingTransition(0,0);

Ich habe dies am 2.1 und 4.0.3 versucht, es hat für mich funktioniert. =)

Ich habe es in den Dokumenten hier gefunden.

51
gulchrider

Diese Lösung hat für mich funktioniert (Android 2.2):

Intent intent = new Intent(getContext(), YourClass.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
6
songokuhd

Zu Ihrer Information, ich bin auf 4.4.2 und dies sind die einzigen Dinge, die ich gefunden habe:

So verhindern Sie die Startanimation: Fügen Sie in onCreate () der Startaktivität overridePendingTransition (0,0) hinzu.

So verhindern Sie die schließende Animation: after finish () rufen Sie overridePendingTransition (0,0) sofort auf.

Diese funktionieren NICHT (zumindest nicht in meinem 4.4.2-Build): (1) Aufruf von getWindow (). SetWindowAnimations (0) in onCreate () (das Übergeben einer Nicht-Null-Nummer funktioniert, ist aber ein hässlicher Hack es erwartet eine resId) und (2) overridePendingTransition (0,0) wird unmittelbar nach startActivity () aufgerufen - die Animation ist noch vorhanden.

5
Steve B

geben Sie den folgenden Code in onCreate of Activity ein:

getWindow().setWindowAnimations(0);
0
Hiren Patel