package Ġru . a as mc . op inion ator . ui . feed Ċ Ċ import Ġandroidx . compose . animation . animate Content Size Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . graphics Layer Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . google . ac comp an ist . pager .* Ċ import Ġkotlin . math . absolute Value Ċ import Ġandroidx . compose . ui . util . lerp Ċ Ċ @ Experimental Pager Api Ċ @ Composable Ċ fun ĠImage Pager ( ĊĠĠĠ Ġimages : ĠList < Int > Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( images . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpager State Ġ= Ġremember Pager State ( page Count Ġ= Ġimages . size ) ĊĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHorizontal Pager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġpager State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 2 0 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( top Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġpage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= Ġimages [ page ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġ" Post Ġimage Ġ$ page ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. animate Page Change ( this , Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHorizontal Pager Indicator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpager State Ġ= Ġpager State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Center H orizontally ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Experimental Pager Api Ċ private Ġfun ĠModifier . animate Page Change ( pager Scope : ĠP ager Scope , Ġpage : ĠInt ): ĠModifier Ġ{ ĊĠĠĠ Ġreturn Ġthis . graphics Layer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage Offset Ġ= Ġpager Scope . calculate Current Offset For Page ( page ). absolute Value ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġl erp ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 0 . 8 5 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Ġ= Ġ 1 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfraction Ġ= Ġ 1 f Ġ- Ġpage Offset ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdate Alpha Ġ= Ġl erp ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 0 . 5 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Ġ= Ġ 1 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfraction Ġ= Ġ 1 f Ġ- Ġpage Offset ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġscale X Ġ= Ġscale ĊĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġscale ĊĠĠĠĠĠĠĠ Ġalpha Ġ= Ġupdate Alpha ĊĠĠĠ Ġ} Ċ } ĊĊĊĊĊĊĊĊĊĊĊĊĊĊĊĊ ĊĊĊĊĊĊĊĊ ĊĊ