Ici à HASHTAGS , nos clients comptent sur nous pour les aider à gérer de manière fiable leur contenu sur les réseaux sociaux. Les clients Sprout utilisent nos applications mobiles iOS et Android pour gérer leur médias sociaux en déplacement . Lorsque nous avons décidé de mettre à jour notre expérience de rédaction de message Android pour prendre en charge édition plusieurs images jointes à un Tweet, nous voulions indiquer clairement à l'utilisateur lorsque plusieurs images étaient jointes, même lorsqu'elles ne sont pas visibles sur l'écran de rédaction.



Solution de conception: utilisez une animation pour désigner des images hors écran

Compte tenu de notre conception et des contraintes d'un écran mobile, il était possible que les images attachées résident hors écran. Bien que ce ne soit pas idéal, c'était une concession nécessaire étant donné la densité des fonctionnalités prises en charge sur l'écran de composition. Pour les cas où les images sont, en fait, hors écran, nous avons décidé de mettre en œuvre une animation horizontale de «rebond» qui indiquerait que la liste des images pouvait faire défiler.



Choix d'implémentation: ObjectAnimator + EasingInterpolator

Il existe de nombreux mécanismes pour prendre en charge les animations de base sous Android. Certains nécessitent une configuration en code, d'autres en xml. En choisissant parmi les alternatives, nous avons décidé de donner la priorité à la rétrocompatibilité (nous prenons en charge sdk version 15+), à la simplicité de mise en œuvre et à la configurabilité. Finalement, nous avons décidé d'utiliser une combinaison de ObjectAnimator et AssouplissementInterpolateur . Ces deux éléments peuvent être configurés en code Java, ce qui est finalement plus convivial pour les développeurs: la syntaxe est familière et la logique d'animation peut être complètement définie à un emplacement dans la base de code.

ObjectAnimator est une classe fournie par le framework Android qui permet la modification d'une propriété d'une vue. Étant donné que le mouvement de l'interpolateur par défaut pour ObjectAnimator ne semblait pas naturel pour notre cas d'utilisation, nous avons décidé d'utiliser EasingInterpolator, une bibliothèque pratique qui fournit de nombreux modèles d'interpolation différents.

android-bounce-animation-easing-sample

Code d'animation de rebond

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(); }

Heureusement, le code pour gérer ce comportement est très concis. Dans la ligne 1, nous spécifions comment nous voulons animer la targetView. Dans ce cas, nous voulons modifier la propriété «translationX» de la targetView, qui est la position x de la vue après la mise en page. Nous voulons animer à partir d'un décalage de 0dp de la position initiale à un décalage de 25dp vers la droite et finalement revenir au décalage d'origine de 0dp.

Dans la ligne 2, nous spécifions le type d'interpolation que nous souhaitons. Nous avons joué avec différents modèles d'interpolation, mais nous avons finalement décidé qu'Ease.ELASTIC_IN_OUT correspondait le mieux à notre cas d'utilisation.

Animation de rebond Android HASHTAGS dans Compose

Pour plus d'informations sur la prise en charge de l'animation de propriété dans Android, consultez le Doc développeur d'animation immobilière .



L'animation en action

Nous sommes très satisfaits de nos mises à jour de l'expérience mobile Compose. À l'avenir, nous prévoyons de continuer à enrichir notre expérience mobile avec des interfaces visuelles réactives. Intéressé à travailler sur ce genre de choses avec nous? Viens travaille avec nous sur notre équipe mobile Android!


714 numéro d'ange

Partage Avec Tes Amis: