Frage

Was ist der beste Weg, um zu einer neuen Aktivität zu gehen, aber es sieht so aus, als würde die Aktivität nach links und die neue Aktivität in den Bildschirm eintreten? Ich benutze Absichten, um die neue Aktivität aufzurufen. Ist das der Weg, wenn ich möchte, dass die Anwendung leicht ist?

Um ein bisschen besser zu erklären: Auf meinem Android -Telefon kann ich die Aussicht mit dem häuslichen Meny nach rechts wischen und dann von links in einen Freundstream eintreten und auf dem Bildschirm stattfinden. Ich möchte es in meiner App mit Buttonclicks machen, es ist das "Schieben", das ich suchte. Danke!

War es hilfreich?

Lösung

In Android OS 2.1 oder später denke ich, dass Sie die verwenden können ÜberredependingTransition () Methode zur Bereitstellung der Art des Übergangs zwischen Aktivitätenanimationen, nach denen Sie suchen.

Definieren Sie zunächst einige Animationsressourcen in /res/anim/. Hier ist einer, der benannt ist right_slide_out.xml :

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:duration="500"
    />
</set>

Ein anderer rief Right_slide_in.xml :

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration="700"
    />
</set>

Wenn Sie dann mit der neuen Aktivität beginnen, verwenden Sie die OverridePendingTransition -Methode wie in:

startActivity(intent);
overridePendingTransition  (R.anim.right_slide_in, R.anim.right_slide_out);

Das sollte die Übergangsanimationen für den Start der Aktivität bewältigen.

Wenn diese Aktivität endet und Sie zum Original zurückkehren, ist sie etwas nebeler.

Wenn Sie eine UI -Steuerung haben, die diese Aktivität beendet und Aktivität aufruft.finish (), können Sie einfach die Übersteuerungstreppransition () gleich danach hinzufügen.

Verwenden Sie so etwas wie folgt:

@Override
public void onBackPressed() 
{

    this.finish();
    overridePendingTransition  (R.anim.right_slide_in, R.anim.right_slide_out);
}

Andere Tipps

Sie können eine links_slide_out.xml verwenden (ändern Sie einfach die Toxdelta in Joshs right_slide_out.xml, um -100%p), um die alte Aktivität nach links verschwinden zu lassen (und auch bei beiden Animationen die gleiche Dauer).

Ja, die Verwendung von Absichten ist die Standardmethode, um eine andere Aktivität zu starten, und macht normalerweise das Schieber, das Sie erwähnen. EG StartActivity (neue Absicht (diese, myNextActivity.class)); werde es tun.

Jems ist richtig. Standardmäßig erhalten Sie beim Starten einer neuen Absicht eine Gleitanimation.

Wenn Sie nach einer kundenspezifischeren Animation suchen, können Sie verwenden ÜberredependingTransition. Denken Sie daran, dass es in der API -Stufe 5 hinzugefügt wurde. Sehen Sie dies API -Demo Für die Stichprobe.

Es gibt ein bisschen Verwirrung darüber, was die Eingaber- und Beenden -Animationen sind. Für diejenigen, die immer noch darüber nachdenken, ist hier eine Vorlage.

overridePendingTransition(
    enterAnimationForCalledActivity, 
    exitAnimationForCallingActivity
);

Dies sollte wahrscheinlich die Luft ein wenig löschen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top