Hier, um HASHTAGS Unsere Kunden sind darauf angewiesen, dass wir ihnen helfen, ihre Social-Media-Inhalte zuverlässig zu verwalten. Sprout-Kunden verwenden unsere mobilen iOS- und Android-Anwendungen, damit sie ihre verwalten können Social Media für unterwegs . Als wir beschlossen, unsere Android-Nachricht zu aktualisieren, um die Unterstützung zu komponieren Veröffentlichung Mehrere Bilder an einen Tweet angehängt. Wir wollten dem Benutzer klar machen, wann mehrere Bilder angehängt wurden, auch wenn sie auf dem Erstellungsbildschirm nicht sichtbar sind.



Entwurfslösung: Verwenden Sie Animation, um Bilder außerhalb des Bildschirms zu kennzeichnen

Aufgrund unseres Designs und der Einschränkungen eines mobilen Bildschirms konnten angehängte Bilder außerhalb des Bildschirms angezeigt werden. Dies ist zwar nicht ideal, aber angesichts der Dichte der unterstützten Funktionen auf dem Bildschirm 'Verfassen' eine notwendige Konzession. In Fällen, in denen Bilder tatsächlich außerhalb des Bildschirms angezeigt werden, haben wir beschlossen, eine horizontale 'Bounce' -Animation zu implementieren, die darauf hinweist, dass die Liste der Bilder scrollbar ist.



Auswahl der Implementierung: ObjectAnimator + EasingInterpolator

Es gibt viele Mechanismen zur Unterstützung grundlegender Animationen in Android. Einige erfordern eine Konfiguration im Code, andere in XML. Bei der Auswahl von Alternativen haben wir uns entschlossen, die Abwärtskompatibilität (wir unterstützen SDK Version 15+), die einfache Implementierung und die Konfigurierbarkeit zu priorisieren. Letztendlich haben wir uns für eine Kombination von entschieden ObjectAnimator und EasingInterpolator . Beide können in Java-Code konfiguriert werden, der letztendlich entwicklerfreundlicher ist: Die Syntax ist bekannt, und die Animationslogik kann an einer Stelle in der Codebasis vollständig definiert werden.

ObjectAnimator ist eine vom Android-Framework bereitgestellte Klasse, mit der eine Eigenschaft einer Ansicht geändert werden kann. Da sich die Bewegung des Standardinterpolators für ObjectAnimator für unseren Anwendungsfall nicht natürlich anfühlte, haben wir uns für EasingInterpolator entschieden, eine praktische Bibliothek, die viele verschiedene Interpolationsmodelle bietet.

android-bounce-animation-easing-sample

Bounce-Animationscode

private void doBounceAnimation(View targetView) { ObjectAnimator animator = ObjectAnimator.ofFloat(targetView, 'translationX', 0, 25, 0); animator.setInterpolator(new EasingInterpolator(Ease.ELASTIC_IN_OUT)); animator.setStartDelay(500); animator.setDuration(1500); animator.start(); }

Glücklicherweise ist der Code für dieses Verhalten sehr präzise. In Zeile 1 geben wir an, wie die Zielansicht animiert werden soll. In diesem Fall möchten wir die Eigenschaft 'translationX' der Zielansicht ändern, bei der es sich um die x-Position der Ansicht nach dem Layout handelt. Wir wollen von einem Versatz von 0 dp von der Anfangsposition zu einem Versatz von 25 dp nach rechts animieren und schließlich zum ursprünglichen Versatz von 0 dp zurückkehren.

In Zeile 2 geben wir die Art der Interpolation an, die wir möchten. Wir haben mit verschiedenen Interpolationsmodellen herumgespielt, aber letztendlich entschieden, dass Ease.ELASTIC_IN_OUT für unseren Anwendungsfall am besten aussieht.

HASHTAGS Android Bounce Animation in Compose

Weitere Informationen zur Unterstützung von Eigenschaftenanimationen in Android finden Sie unter Eigenschaft Animation Entwickler doc .



Animation in Aktion

Wir freuen uns sehr über unsere Updates für das mobile Compose-Erlebnis. In Zukunft planen wir, unser mobiles Erlebnis weiterhin mit reaktionsschnellen visuellen Schnittstellen zu bereichern. Möchten Sie mit uns an solchen Dingen arbeiten? Kommen Sie arbeite mit uns in unserem Android Mobile Team!

Teile Mit Deinen Freunden: