Ontdek Uw Aantal Engel
Hoe maak je een Bounce-animatie voor Android
Hier bij HASHTAGS vertrouwen onze klanten op ons om hen te helpen hun sociale media-inhoud betrouwbaar te beheren. Sprout-klanten gebruiken onze mobiele iOS- en Android-applicaties zodat ze hun sociale media onderweg Toen we besloten om onze Android-bericht Compose-ervaring bij te werken om te ondersteunen publiceren meerdere afbeeldingen bijgevoegd bij een Tweet, wilden we de gebruiker duidelijk maken wanneer er meerdere afbeeldingen waren bijgevoegd, zelfs als deze niet zichtbaar zijn op het Opstel-scherm.
Ontwerpoplossing: gebruik animatie om off-screen afbeeldingen aan te duiden
Gezien ons ontwerp en de beperkingen van een mobiel scherm, was het mogelijk dat bijgevoegde afbeeldingen buiten het scherm blijven. Hoewel dit niet ideaal is, was het een noodzakelijke concessie gezien de dichtheid van ondersteunde functionaliteit op het Compose-scherm. Voor gevallen waarin afbeeldingen zich in feite buiten het scherm bevinden, hebben we besloten om een horizontale 'bounce' -animatie te implementeren die erop zou wijzen dat de lijst met afbeeldingen scrollbaar was.
Implementatiekeuze: ObjectAnimator + EasingInterpolator
Er zijn veel mechanismen om basisanimaties in Android te ondersteunen. Sommige vereisen configuratie in code, andere in xml. Bij het kiezen van alternatieven hebben we besloten prioriteit te geven aan achterwaartse compatibiliteit (we ondersteunen sdk-versie 15+), eenvoud van implementatie en configureerbaarheid. Uiteindelijk hebben we besloten om een combinatie van te gebruiken ObjectAnimator en EasingInterpolator Beide kunnen worden geconfigureerd in Java-code, wat uiteindelijk ontwikkelaarsvriendelijker is: de syntaxis is bekend en de animatielogica kan volledig worden gedefinieerd op één locatie in de codebase.
ObjectAnimator is een klasse die wordt geleverd door het Android-framework en waarmee een eigenschap van een weergave kan worden gewijzigd. Omdat de beweging van de standaardinterpolator voor ObjectAnimator niet natuurlijk aanvoelde voor onze use case, hebben we besloten om EasingInterpolator te gebruiken, een handige bibliotheek die veel verschillende interpolatiemodellen biedt.
Bounce-animatiecode
Gelukkig is de code om met dit gedrag om te gaan erg beknopt. In regel 1 specificeren we hoe we de targetView willen animeren. In dit geval willen we de 'translationX' -eigenschap van de targetView wijzigen, wat de x-positie van de weergave na lay-out is. We willen animeren vanaf een offset van 0dp vanaf de beginpositie naar een offset van 25dp naar rechts en uiteindelijk terugkeren naar de oorspronkelijke offset van 0dp.
259 nummer
In regel 2 specificeren we het type interpolatie dat we willen. We speelden met verschillende interpolatiemodellen, maar besloten uiteindelijk dat Ease.ELASTIC_IN_OUT er het beste uitzag voor onze use case.
Voor meer informatie over het ondersteunen van eigendomsanimatie in Android, bekijk het Property Animation ontwikkelaar doc
Animatie in actie
We zijn erg blij met onze updates voor de mobiele Compose-ervaring. In de toekomst zijn we van plan om onze mobiele ervaring te blijven verrijken met responsieve visuele interfaces. Interesse om met ons aan dit soort dingen te werken? Komen werk met ons op ons mobiele Android-team!
Deel Het Met Je Vrienden: