Ich versuche, ein benutzerdefiniertes Dialogfeld so anzuzeigen, als würde es aus einer Textansicht nach unten verschoben. Ist das möglich? Ich kann anscheinend keine Animation auf die Dialogklasse anwenden. Ich habe diese Zeile im Konstruktor ausprobiert, aber sie hat keine Auswirkung:
this.getWindow (). setWindowAnimations (R.anim.paranimation);
Ich bin mir nicht einmal sicher, ob die Animation korrekt ist, aber ich kann sie anpassen, sobald ich sehe, was sie tut. Ich werde es der Vollständigkeit halber unten auflisten. Ich suche keine Hilfe für die eigentliche Animation, sondern nur die Anwendung für den Dialog.
paranimation.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-200%"
android:toXDelta="0%"
android:fromYDelta="200%"
android:toYDelta="0%"
android:duration="3000"
android:zAdjustment="top">
</translate>
Antworten:
Ich habe heute mit Dialoganimationen zu kämpfen gehabt und sie endlich mit Stilen zum Laufen gebracht. Hier ist ein Beispiel.
Zunächst das Wichtigste - ich hatte es heute wahrscheinlich auf 5 verschiedene Arten funktionieren lassen, konnte es aber nicht sagen, weil ... Wenn die Animationseinstellungen Ihres Geräts auf "Keine Animationen" (Einstellungen → Anzeige → Animation) eingestellt sind, haben die Dialoge gewonnen Sei nicht animiert, egal was du tust!
Das Folgende ist eine abgespeckte Version meiner styles.xml. Hoffentlich ist es selbsterklärend. Dies sollte sich in befinden
res/values
.Das
windowEnterAnimation
ist eine meiner Animationen und befindet sich inres\anim
. DieswindowExitAnimation
ist eine der Animationen, die Teil des Android SDK ist.Wenn ich dann den Dialog in meiner Aktivitätsmethode erstelle,
onCreateDialog(int id)
gehe ich wie folgt vor.Alternativ können Sie die Animationen folgendermaßen festlegen, anstatt den Dialogkonstruktor zu verwenden, der ein Thema verwendet.
quelle
Dialog dialog = new Dialog(this, R.style.PauseDialog);
es ist für API 11, aber dies ist allgemeinDialog dialog = new Dialog(Context context);
Ich habe die Animation zum Ein- und Ausblenden für das Dialogfeld mit ChrisJD-Code erstellt.
In res / style.xml
In anim / fadein.xml
In anim / fadeout.xml
Hauptaktivität
quelle
Für von rechts nach links (Eingangsanimation) und von links nach rechts (Ausgangsanimation):
styles.xml:
Erstellen Sie zwei Dateien in res / anim /:
translate_right_side.xml:
translate_left_side.xml:
In dir Fragment / Aktivität:
quelle
Ich treffe das gleiche Problem, aber schließlich löse ich das Problem auf folgende Weise
quelle
Zuerst müssen Sie zwei Animationsressourcen in res / anim dir erstellen
slide_up.xml
slide_bottom.xml
dann musst du einen Stil erstellen
und fügen Sie diese Zeile Ihrer Klasse hinzu
Basierend auf http://www.devexchanges.info/2015/10/showing-dialog-with-animation-in-android.html
quelle
Versuchen Sie den folgenden Code:
Erstellen Sie die benutzerdefinierte Animation: res / anim / customer_anim.xml:
quelle