Package pi.animation
Class ValueAnimator<Value>
java.lang.Object
pi.animation.ValueAnimator<Value>
- Type Parameters:
Value- Der Typ der Werte, die animiert werden, z. B.Double
- All Implemented Interfaces:
FrameUpdateListener
Ein Animator, der Werte über eine bestimmte Zeitspanne interpoliert und dabei
einen
Consumer mit den berechneten Zwischenwerten aufruft.
Der ValueAnimator ermöglicht es, Animationen zu erstellen, indem er
kontinuierlich Werte zwischen einem Start- und Endwert berechnet und diese an
eine Consumer-Funktion übergibt. Die Berechnung erfolgt durch einen
Interpolator, der die konkreten Zwischenwerte bestimmt.
Die Klasse unterstützt verschiedene Animationsmodi:
SINGLE- Die Animation wird einmal ausgeführt und beendet sich dann.REPEATED- Die Animation wird kontinuierlich wiederholt.PING_PONG- Die Animation läuft vorwärts und rückwärts in einer Schleife.
Zusätzlich kann die Animation pausiert, der Fortschritt manuell gesetzt und
Completion-Listener registriert werden, die beim Abschluss der Animation (nur
im SINGLE-Modus) aufgerufen werden.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionValueAnimator(double duration, Consumer<Value> consumer, Interpolator<Value> interpolator, AnimationMode mode, FrameUpdateListenerRegistration parent) ValueAnimator(double duration, Consumer<Value> consumer, Interpolator<Value> interpolator, FrameUpdateListenerRegistration parent) -
Method Summary
Modifier and TypeMethodDescriptionaddCompletionListener(Consumer<Value> listener) booleanisPaused()Gibt an, ob der Animator pausiert ist.voidonFrameUpdate(double pastTime) Diese Methode wird bei einem (angemeldeten) Objekt bei jedem Einzelbild erneut aufgerufen.voidsetPaused(boolean paused) Setzt, ob die ValueAnimation pausiert werden soll.voidsetProgress(double progress) Setzt den aktuellen Fortschritt des Animators händisch.
-
Constructor Details
-
ValueAnimator
public ValueAnimator(double duration, Consumer<Value> consumer, Interpolator<Value> interpolator, AnimationMode mode, FrameUpdateListenerRegistration parent) - Parameters:
duration- Die Dauer der Animation in Sekunden.consumer- Die Funktion, die bei jedem Einzelbild mit dem interpolierten Wert aufgerufen wird.interpolator- Der Interpolator, der die Werte zwischen Start und Ende berechnet.mode- Der Animationsmodus (z.B.SINGLEfür einmalige Ausführung).parent- Die Figur, Szene oder Ebene, die diesen Animator über die MethodeFrameUpdateListenerRegistration.addFrameUpdateListener(FrameUpdateListener)registriert, damit der Animator bei Abschluss der Animation abmeldet werden kann.
-
ValueAnimator
public ValueAnimator(double duration, Consumer<Value> consumer, Interpolator<Value> interpolator, FrameUpdateListenerRegistration parent) - Parameters:
duration- Die Dauer der Animation in Sekunden.consumer- Die Funktion, die bei jedem Einzelbild mit dem interpolierten Wert aufgerufen wird.interpolator- Der Interpolator, der die Werte zwischen Start und Ende berechnet.parent- Die Figur, Szene oder Ebene, die diesen Animator über die MethodeFrameUpdateListenerRegistration.addFrameUpdateListener(FrameUpdateListener)registriert, damit der Animator bei Abschluss der Animation abmeldet werden kann.
-
-
Method Details
-
setPaused
Setzt, ob die ValueAnimation pausiert werden soll.- Parameters:
paused-true: Die Animation wird unterbrochen, bis das flag umgesetzt wird.false: Die Animation wird wieder aufgenommen (sollte sie unterbrochen worden sein)- See Also:
-
isPaused
Gibt an, ob der Animator pausiert ist.- Returns:
- Ob der Animator pausiert ist.
- See Also:
-
setProgress
Setzt den aktuellen Fortschritt des Animators händisch.- Parameters:
progress- Der Fortschritt, zu dem der Animator gesetzt werden soll.0ist Anfang der Animation,1ist Ende der Animation. Werte kleiner 0 bzw. größer als 1 sind nicht erlaubt.
-
onFrameUpdate
public void onFrameUpdate(double pastTime) Description copied from interface:FrameUpdateListenerDiese Methode wird bei einem (angemeldeten) Objekt bei jedem Einzelbild erneut aufgerufen.- Specified by:
onFrameUpdatein interfaceFrameUpdateListener- Parameters:
pastTime- Die Zeit in Sekunden, die seit der letzten Aktualisierung vergangen ist.
-
addCompletionListener
-