package Ġcom . guru . compose cookbook . ui . animation Ċ Ċ import ĠMy Animation State Ċ import Ġandroidx . compose . animation . animate Color Ċ import Ġandroidx . compose . animation . core .* Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . offset Ċ import Ġandroidx . compose . material . Divider Ċ import Ġandroidx . compose . material . Floating ActionButton Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Play Circle Filled Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . guru . compose cookbook . canvas . Multi State Animation Circle Filled Canvas Ċ import Ġcom . guru . compose cookbook . canvas . Multi State Animation Circle Stroke Canvas Ċ import Ġcom . guru . compose cookbook . theme . green 2 0 0 Ċ import Ġcom . guru . compose cookbook . theme . green 5 0 0 Ċ import Ġcom . guru . compose cookbook . theme . orange Ċ import Ġcom . guru . compose cookbook . theme . purple Ċ import Ġcom . guru . compose cookbook . ui . utils . Subtitle Text Ċ import Ġcom . guru . compose cookbook . ui . utils . Title Text Ċ Ċ @ Composable Ċ fun ĠTransition Animations With Multiple States () Ġ{ ĊĠĠĠ ĠTitle Text ( title Ġ= Ġ" Multi - state ĠAnim ations Ġvia ĠTransition Ġand ĠStates ") ĊĠĠĠ ĠMulti State Color Position Animation () ĊĠĠĠ ĠDiv ider () ĊĠĠĠ ĠMulti State Infinite Transition () ĊĠĠĠ ĠDiv ider () ĊĠĠĠ ĠFloat Multi State Animation Circle Stroke Canvas () ĊĠĠĠ ĠDiv ider () ĊĠĠĠ ĠFloat Multi State Animation Circle Canvas () Ċ } Ċ Ċ @ Composable Ċ fun ĠMulti State Color Position Animation () Ġ{ ĊĠĠĠ ĠSub title Text ( subtitle Ġ= Ġ" Multi ĠState Ġcolor Ġand Ġposition Ġtransition ") ĊĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 8 0 . dp )) ĊĠĠĠ Ġvar Ġanimation State Ġby Ġremember Ġ{ Ġmutable State Of ( My Animation State . START ) Ġ} ĊĠĠĠ Ġval Ġstart Color Ġ= Ġgreen 2 0 0 ĊĠĠĠ Ġval Ġmid Color Ġ= Ġpur ple ĊĠĠĠ Ġval Ġend Color Ġ= Ġorange ĊĊĠĠĠ Ġval Ġtransition Ġ= Ġupdate Transition ( target State Ġ= Ġanimation State ) ĊĊĠĠĠ Ġval Ġanimated Color Ġby Ġtransition . animate Color ( ĊĠĠĠĠĠĠĠ Ġtransition Spec Ġ= Ġ{ Ġt ween ( 5 0 0 ) Ġ} ĊĠĠĠ Ġ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . START Ġ-> Ġstart Color ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . MID Ġ-> Ġmid Color ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . END Ġ-> Ġend Color ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġposition Ġby Ġtransition . animate Dp ( ĊĠĠĠĠĠĠĠ Ġtransition Spec Ġ= Ġ{ Ġt ween ( 5 0 0 ) Ġ} ĊĠĠĠ Ġ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . START Ġ-> Ġ 0 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . MID Ġ-> Ġ 8 0 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . END Ġ-> Ġ(- 8 0 ). dp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠFloating ActionButton ( ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġanimated Color , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . offset ( x Ġ= Ġposition , Ġy Ġ= Ġposition ), ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation State Ġ= Ġwhen Ġ( animation State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . START Ġ-> ĠMy Animation State . MID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . MID Ġ-> ĠMy Animation State . END ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Animation State . END Ġ-> ĠMy Animation State . START ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ ĠIcon ( image Vector Ġ= ĠIcons . Default . Play Circle Filled , Ġcontent Description Ġ= Ġnull ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠMulti State Infinite Transition () Ġ{ ĊĠĠĠ ĠSub title Text ( subtitle Ġ= Ġ" Multi ĠState Ġinfinite Ġtransition ") ĊĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 8 0 . dp )) ĊĠĠĠ Ġval Ġstart Color Ġ= Ġgreen 2 0 0 ĊĠĠĠ Ġval Ġend Color Ġ= Ġorange ĊĊĠĠĠ Ġval Ġtransition Ġ= Ġremember Infinite Transition () ĊĊĠĠĠ Ġval Ġanimated Color Ġby Ġtransition . animate Color ( ĊĠĠĠĠĠĠĠ Ġinitial Value Ġ= Ġstart Color , ĊĠĠĠĠĠĠĠ Ġtarget Value Ġ= Ġend Color , ĊĠĠĠĠĠĠĠ Ġanimation Spec Ġ= Ġinfinite Repeat able ( t ween ( 8 0 0 ), ĠRepeat Mode . Reverse ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġposition Ġby Ġtransition . animate Float ( ĊĠĠĠĠĠĠĠ Ġinitial Value Ġ= Ġ- 8 0 f , ĊĠĠĠĠĠĠĠ Ġtarget Value Ġ= Ġ 8 0 f , ĊĠĠĠĠĠĠĠ Ġanimation Spec Ġ= Ġinfinite Repeat able ( t ween ( 8 0 0 ), ĠRepeat Mode . Reverse ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠFloating ActionButton ( ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġanimated Color , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . offset ( x Ġ= Ġposition . dp ), ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ ĠIcon ( image Vector Ġ= ĠIcons . Default . Play Circle Filled , Ġcontent Description Ġ= Ġnull ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Composable Ċ fun ĠFloat Multi State Animation Circle Stroke Canvas () Ġ{ ĊĠĠĠ ĠSub title Text ( subtitle Ġ= Ġ" Canvas ĠCircle Ġstroke Ġwith Ġtransition ") ĊĠĠĠ ĠMulti State Animation Circle Stroke Canvas () Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ fun ĠFloat Multi State Animation Circle Canvas ( color : ĠColor Ġ= Ġgreen 5 0 0 , Ġradius End : ĠFloat Ġ= Ġ 2 0 0 f ) Ġ{ ĊĠĠĠ ĠSub title Text ( subtitle Ġ= Ġ" Canvas Ġdrawing Ġwith Ġinfinite Ġtransition ") ĊĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 1 0 0 . dp )) ĊĠĠĠ ĠMulti State Animation Circle Filled Canvas ( color , Ġradius End ) ĊĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 1 0 0 . dp )) Ċ } Ċ