package Ġcom . jet pack . compose . learning . animation Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . compose . animation . core . Fast Out Slow In E asing Ċ import Ġandroidx . compose . animation . core . Repeat Mode Ċ import Ġandroidx . compose . animation . core . animate Float Ċ import Ġandroidx . compose . animation . core . infinite Repeat able Ċ import Ġandroidx . compose . animation . core . remember Infinite Transition Ċ import Ġandroidx . compose . animation . core . t ween Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . IconButton Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Arrow Back Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . geometry . Offset Ċ import Ġandroidx . compose . ui . graphics . Brush Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . jet pack . compose . learning . animation . ui . theme . Sh im mer Color Sh ades Ċ import Ġcom . jet pack . compose . learning . theme . App Theme State Ċ import Ġcom . jet pack . compose . learning . theme . Base View Ċ import Ġcom . jet pack . compose . learning . theme . System Ui Controller Ċ Ċ class ĠSh im mer Animation Activity Ġ: ĠComponent Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsystem Ui Controller Ġ= Ġremember Ġ{ ĠSystem Ui Controller ( window ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Theme Ġ= Ġremember Ġ{ Ġmutable State Of ( App Theme State ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase View ( app Theme . value , Ġsystem Ui Controller ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInit View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠInit View () Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( Modifier . background ( Material Theme . colors . background )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTop AppBar ( title Ġ= Ġ{ ĠText ( text Ġ= Ġ" Sh im mer ĠAnimation ", Ġcolor Ġ= ĠColor . White ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ Ġon Back Pressed () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Arrow Back , Ġcontent Description Ġ= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( Modifier . height ( 1 6 . dp )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠLazy Ġcolumn Ġas ĠI Ġam Ġadding Ġmultiple Ġitems Ġfor Ġdisplay Ġpurpose ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġcreate Ġyou ĠUI Ġaccording Ġto Ġrequirement ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLazy Column Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠLay Ġdown Ġthe ĠSh im mer ĠAnimated Ġitem Ġ 5 Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ repeat ] Ġis Ġlike Ġa Ġloop Ġwhich Ġexecutes Ġthe Ġbody Ġaccording Ġto Ġthe Ġnumber Ġspecified ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSh im mer Animation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠSh im mer Animation ( ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠ ĠCreate ĠIn finite Transition ĊĠĠĠĠĠĠĠ Ġwhich Ġholds Ġchild Ġanimation Ġlike Ġ[ Transition ] ĊĠĠĠĠĠĠĠ Ġanimations Ġstart Ġrunning Ġas Ġsoon Ġas Ġthey Ġenter ĊĠĠĠĠĠĠĠ Ġthe Ġcomposition Ġand Ġdo Ġnot Ġstop Ġunless Ġthey Ġare Ġremoved ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġtransition Ġ= Ġremember Infinite Transition () ĊĠĠĠĠĠĠĠ Ġval Ġtranslate Anim Ġby Ġtransition . animate Float ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpecify Ġanimation Ġpositions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial ĠValues Ġ 0 F Ġmeans Ġit Ġstarts Ġfrom Ġ 0 Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Value Ġ= Ġ 0 f , Ġtarget Value Ġ= Ġ 1 0 0 0 f , Ġanimation Spec Ġ= Ġinfinite Repeat able ( ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠT ween ĠAnim ates Ġbetween Ġvalues Ġover Ġspecified Ġ[ duration Millis ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ween ( duration Millis Ġ= Ġ 1 2 0 0 , Ġeasing Ġ= ĠFast Out Slow In E asing ), ĠRepeat Mode . Reverse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreate Ġa Ġgradient Ġusing Ġthe Ġlist Ġof Ġcolors ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse ĠLinear ĠGradient Ġfor Ġanim ating Ġin Ġany Ġdirection Ġaccording Ġto Ġrequirement ĊĠĠĠĠĠĠĠĠ Ġ* Ġstart = spec ifies Ġthe Ġposition Ġto Ġstart Ġwith Ġin Ġcart esian Ġlike Ġsystem ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠĠĠĠĠ ĠOffset ( 1 0 f , 1 0 f ) Ġmeans Ġx ( 1 0 , 0 ) Ġ, Ġy ( 0 , 1 0 ) ĊĠĠĠĠĠĠĠĠ Ġ* Ġend = ĠAn imate Ġthe Ġend Ġposition Ġto Ġgive Ġthe Ġshim mer Ġeffect Ġusing Ġthe Ġtransition Ġcreated Ġabove ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġbrush Ġ= ĠBr ush . linear Gradient ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠSh im mer Color Sh ades , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= ĠOffset ( 1 0 f , Ġ 1 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= ĠOffset ( translate Anim , Ġtranslate Anim ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠSh im mer Item ( brush Ġ= Ġbrush ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠSh im mer Item ( ĊĠĠĠĠĠĠĠ Ġbrush : ĠBr ush ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠColumn Ġcomp osable Ġsh aped Ġlike Ġa Ġrectangle , ĊĠĠĠĠĠĠĠĠ Ġ* Ġset Ġthe Ġ[ background ]' s Ġ[ brush ] Ġwith Ġthe Ġbrush Ġreceiving Ġfrom Ġ[ Sh im mer Animation ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġwhich Ġwill Ġget Ġanimated . ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdd Ġfew Ġmore ĠComp osable Ġto Ġtest ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . padding ( 1 6 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 1 5 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrush Ġ= Ġbrush ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 3 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( vertical Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( brush Ġ= Ġbrush ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }