Her på HASHTAGS , kundene våre er avhengige av oss for å hjelpe dem med å administrere innholdet på sosiale medier pålitelig. Sprout-kunder bruker våre mobile iOS- og Android-applikasjoner, slik at de kan administrere sine sosiale medier på farta . Da vi bestemte oss for å oppdatere Android-meldingen vår Compose-opplevelse for å støtte publisering flere bilder knyttet til en Tweet, ønsket vi å gjøre det klart for brukeren når flere bilder ble lagt ved, selv når de ikke er synlige på komponentskjermen.



Designløsning: Bruk animasjon til å betegne bilder utenfor skjermen

Gitt vårt design og begrensningene til en mobilskjerm, var det mulig for vedlagte bilder å ligge utenfor skjermen. Selv om dette ikke er ideelt, var det en nødvendig konsesjon gitt tettheten av støttet funksjonalitet på Compose-skjermen. For tilfeller der bilder faktisk er utenfor skjermen, bestemte vi oss for å implementere en horisontal 'sprett' -animasjon som skulle indikere at listen over bilder var rullbar.

Implementeringsvalg: ObjectAnimator + EasingInterpolator

Det er mange mekanismer for å støtte grunnleggende animasjoner i Android. Noen krever konfigurasjon i kode, andre i xml. Når vi valgte alternativer, bestemte vi oss for å prioritere bakoverkompatibilitet (vi støtter SDK versjon 15+), enkel implementering og konfigurerbarhet. Til slutt bestemte vi oss for å bruke en kombinasjon av ObjectAnimator og EasingInterpolator . Begge disse kan konfigureres i Java-kode, som til slutt er mer utviklervennlig: Syntaksen er kjent, og animasjonslogikken kan defineres helt på ett sted i kodebasen.



ObjectAnimator er en klasse levert av Android-rammeverket som gjør det mulig å modifisere en Property of a View. Fordi bevegelsen til standardinterpolatoren for ObjectAnimator ikke føltes naturlig for vår brukstilfelle, bestemte vi oss for å bruke EasingInterpolator, som er et praktisk bibliotek som gir mange forskjellige interpolasjonsmodeller.


hvordan tweeter du på twitter

android-bounce-animation-easing-sample

Sprett animasjonskode

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

Heldigvis er koden for å håndtere denne oppførselen veldig kortfattet. I linje 1 spesifiserer vi hvordan vi vil animere targetView. I dette tilfellet vil vi endre “translationX” -egenskapen til targetView, som er x-posisjonen til visningen etter layout. Vi ønsker å animere fra en forskyvning på 0dp fra utgangsposisjonen til en forskyvning på 25dp til høyre og til slutt komme tilbake til den opprinnelige forskyvningen på 0dp.

I linje 2 spesifiserer vi typen interpolasjon vi ønsker. Vi lekte rundt med forskjellige interpolasjonsmodeller, men bestemte oss til slutt for Ease.ELASTIC_IN_OUT så best ut for vår brukstilfelle.

HASHTAGS Android Bounce Animation in Compose

For mer informasjon om støtte for eiendomsanimasjon i Android, sjekk ut Eiendom Animasjon utvikler dok .

Animasjon i aksjon

Vi er veldig glade for oppdateringene til Compose-opplevelsen for mobil. Fremover planlegger vi å fortsette å berike mobilopplevelsen vår med responsive visuelle grensesnitt. Interessert i å jobbe med denne typen ting med oss? Komme jobb med oss på vårt Android-mobilteam!