Čia ne HASHTAGAI , mūsų klientai priklauso nuo mūsų, kad padėtų jiems patikimai valdyti savo socialinės žiniasklaidos turinį. „Sprout“ klientai naudojasi mūsų mobiliosiomis „iOS“ ir „Android“ programomis, kad galėtų jas tvarkyti socialinė žiniasklaida kelyje . Kai nusprendėme atnaujinti „Android“ pranešimą, sukurkite patirtį palaikymui leidyba kelis vaizdus, ​​pridėtus prie „Tweet“, norėjome vartotojui padaryti aiškų, kai buvo pridėti keli vaizdai, net jei jų nematyti „Compose“ ekrane.



Dizaino sprendimas: naudokite animaciją vaizdams, rodomiems ne ekrane

Atsižvelgiant į mūsų dizainą ir mobiliojo ekrano apribojimus, pridedami vaizdai galėjo būti ne ekrane. Nors tai nėra idealu, tačiau tai buvo būtina nuolaida, atsižvelgiant į palaikomo funkcionalumo tankį ekrane Compose. Tais atvejais, kai vaizdai iš tikrųjų yra ne ekrane, mes nusprendėme įdiegti horizontalią „atšokimo“ animaciją, kuri parodytų, kad vaizdų sąrašas gali būti slenkamas.



Įgyvendinimo pasirinkimas: ObjectAnimator + EasingInterpolator

Yra daugybė pagrindinių „Android“ animacijų palaikymo mechanizmų. Kai kuriems reikia konfigūracijos kode, kitiems - xml. Rinkdamiesi alternatyvas, nusprendėme teikti pirmenybę atgaliniam suderinamumui (palaikome SDK versiją 15+), įgyvendinimo paprastumui ir konfigūravimui. Galų gale mes nusprendėme naudoti ObjectAnimator ir „Interpolator“ palengvinimas . Juos abu galima sukonfigūruoti „Java“ kode, kuris galiausiai yra patogesnis kūrėjui: sintaksė yra žinoma ir animacijos logika gali būti visiškai apibrėžta vienoje kodų bazės vietoje.

„ObjectAnimator“ yra klasė, kurią teikia „Android“ sistema, leidžianti modifikuoti rodinio ypatybę. Kadangi numatytojo „ObjectAnimator“ interpoliatoriaus judėjimas nesijautė natūralus mūsų naudojimo atvejui, nusprendėme naudoti „EasingInterpolator“, kuri yra patogi biblioteka, teikianti daug įvairių interpoliacijos modelių.

android-bounce-animation-easing-sample

Atšokimo animacijos kodas

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

Laimei, kodas, skirtas šiam elgesiui spręsti, yra labai glaustas. 1 eilutėje nurodome, kaip norime animuoti „targetView“. Šiuo atveju norime pakeisti „targetView“ ypatybę „translationX“, kuri yra rodinio x padėtis po išdėstymo. Norime animuoti nuo 0dp poslinkio nuo pradinės padėties iki 25dp poslinkio į dešinę ir galiausiai grįžti prie pradinio 0dp poslinkio.

2 eilutėje mes nurodome norimo interpoliacijos tipą. Žaidėme su įvairiais interpoliacijos modeliais, bet galiausiai nusprendėme, kad „Ease.ELASTIC_IN_OUT“ geriausiai tinka mūsų naudojimo atvejui.

HASHTAGS „Android Bounce“ animacija kūrinyje

Norėdami gauti daugiau informacijos apie nuosavybės animacijos palaikymą „Android“, apsilankykite „Property Animation“ kūrėjas doc .



Animacija veiksme

Mes tikrai džiaugiamės mobiliųjų kūrimo funkcijų atnaujinimais. Žengdami į priekį, mes planuojame ir toliau praturtinti savo mobiliojo ryšio patirtį reaguojančiomis vaizdinėmis sąsajomis. Norite dirbti su mumis su tokiais dalykais? Ateiti dirbk su mumis mūsų „Android“ mobiliųjų komandoje!

Dalykitės Su Savo Draugais: