import Ġandroid . graphics . Bitmap Ċ import Ġandroidx . activity . compose . Back Handler Ċ import Ġandroidx . compose . foundation .* Ċ import Ġandroidx . compose . foundation . gest ures . detect Transform Gest ures Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics .* Ċ import Ġandroidx . compose . ui . input . pointer . pointer Input Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġchat . simp lex . app . R Ċ Ċ @ Composable Ċ fun ĠImage FullScreen View ( image Bitmap : ĠBitmap , Ġclose : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠ ĠBack Handler ( on Back Ġ= Ġclose ) ĊĠ ĠColumn ( ĊĠĠĠ ĠModifier ĊĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠ Ġ. background ( Color . Black ) ĊĠĠĠĠĠ Ġ. click able ( onClick Ġ= Ġclose ) ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġvar Ġscale Ġby Ġremember Ġ{ Ġmutable State Of ( 1 f ) Ġ} ĊĠĠĠ Ġvar Ġtranslation X Ġby Ġremember Ġ{ Ġmutable State Of ( 0 f ) Ġ} ĊĠĠĠ Ġvar Ġtranslation Y Ġby Ġremember Ġ{ Ġmutable State Of ( 0 f ) Ġ} ĊĠĠĠ ĠImage ( ĊĠĠĠĠĠ Ġimage Bitmap . as Image Bitmap (), ĊĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . image _ descr ), ĊĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Fit , ĊĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠ Ġ. graphics Layer ( ĊĠĠĠĠĠĠĠĠĠ Ġscale X Ġ= Ġscale , ĊĠĠĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġscale , ĊĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġtranslation X , ĊĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġtranslation Y , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. pointer Input ( Unit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġdetect Transform Gest ures ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Gesture Ġ= Ġ{ Ġ_, Ġpan , Ġgesture Zoom , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ( scale Ġ* Ġgesture Zoom ). coerce In ( 1 f , Ġ 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scale Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ+= Ġpan . x Ġ* Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ+= Ġpan . y Ġ* Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. fill MaxSize (), ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ