import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Display Metrics Ċ import Ġandroid . view . WindowManager Ċ import Ġkotlin . math . round ToInt Ċ Ċ /** Ċ Ġ* Ġ@ author Ġa mino graphy Ċ Ġ*/ Ċ Ċ private Ġval Ġdisplay Metrics : ĠDisplay Metrics Ġby Ġlazy Ġ{ ĠResources . getSystem (). display Metrics Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġboundary Ġof Ġthe Ġscreen Ġin Ġpixels Ġ( px ). Ċ Ġ*/ Ċ val Ġscreen Rect Px : ĠRect ĊĠ Ġget () Ġ= Ġdisplay Metrics . run Ġ{ ĠRect ( 0 , Ġ 0 , Ġwidth Pixels , Ġheight Pixels ) Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġboundary Ġof Ġthe Ġscreen Ġin Ġdensity Ġindependent Ġpixels Ġ( dp ). Ċ Ġ*/ Ċ val Ġscreen Rect Dp : ĠRect F ĊĠ Ġget () Ġ= Ġscreen Rect Px . run Ġ{ ĠRect F ( 0 f , Ġ 0 f , Ġright . px 2 dp , Ġbottom . px 2 dp ) Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġboundary Ġof Ġthe Ġphysical Ġscreen Ġincluding Ġsystem Ġdecor Ġelements Ġ( if Ġany ) Ġlike Ġnavigation Ċ Ġ* Ġbar Ġin Ġpixels Ġ( px ). Ċ Ġ*/ Ċ val ĠContext . physical Screen Rect Px : ĠRect ĊĠ Ġget () Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ) Ġ{ ĊĠĠĠ Ġ( application Context . getSystem Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ) ĊĠĠĠĠĠ Ġ. run Ġ{ ĠDisplay Metrics (). also Ġ{ Ġdefault Display . get Real Metrics ( it ) Ġ} Ġ} ĊĠĠĠĠĠ Ġ. run Ġ{ ĠRect ( 0 , Ġ 0 , Ġwidth Pixels , Ġheight Pixels ) Ġ} ĊĠ Ġ} Ġelse Ġscreen Rect Px Ċ Ċ /** Ċ Ġ* ĠReturns Ġboundary Ġof Ġthe Ġphysical Ġscreen Ġincluding Ġsystem Ġdecor Ġelements Ġ( if Ġany ) Ġlike Ġnavigation Ċ Ġ* Ġbar Ġin Ġdensity Ġindependent Ġpixels Ġ( dp ). Ċ Ġ*/ Ċ val ĠContext . physical Screen Rect Dp : ĠRect F ĊĠ Ġget () Ġ= Ġphysical Screen Rect Px . run Ġ{ ĠRect F ( 0 f , Ġ 0 f , Ġright . px 2 dp , Ġbottom . px 2 dp ) Ġ} Ċ Ċ /** Ċ Ġ* ĠConverts Ġany Ġgiven Ġnumber Ġfrom Ġpixels Ġ( px ) Ġinto Ġdensity Ġindependent Ġpixels Ġ( dp ). Ċ Ġ*/ Ċ val ĠNumber . px 2 dp : ĠFloat ĊĠ Ġget () Ġ= Ġthis . toFloat () Ġ/ Ġdisplay Metrics . density Ċ Ċ /** Ċ Ġ* ĠConverts Ġany Ġgiven Ġnumber Ġfrom Ġdensity Ġindependent Ġpixels Ġ( dp ) Ġinto Ġpixels Ġ( px ). Ċ Ġ*/ Ċ val ĠNumber . dp 2 px : ĠInt ĊĠ Ġget () Ġ= Ġ( this . toFloat () Ġ* Ġdisplay Metrics . density ). round ToInt () Ċ