package Ġcom . dt b . core . common . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . Fragment Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠB ILL Ġon Ġ 2 0 1 6 / 1 1 / 2 4 . Ċ Ġ* Ġemail : tang ba o zi @ da ot ang bill . uu . me Ċ Ġ* Ġ ç³»ç»Ł å±ı å¹ķ çļĦ Ġ å·¥åħ· ç±» Ċ Ġ* Ċ Ġ* Ġ@ author ĠB ILL Ċ Ġ* Ġ@ version Ġ 1 . 0 Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġdp ĠçļĦ åįķä½į Ġ è½¬ æĪĲä¸º Ġpx ( åĥı ç´ł ) Ċ Ġ*/ Ċ fun Ġdip 2 px ( dp Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġpx Ġ= ĠTyped Value . apply Dimension ( ĊĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ DIP , ĊĠĠĠĠĠĠĠ Ġdp Value , ĠResources . getSystem (). display Metrics ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġpx . toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġpx ( åĥı ç´ł ) ĠçļĦ åįķä½į Ġ è½¬ æĪĲä¸º Ġdp Ċ Ġ*/ Ċ fun Ġpx 2 dip ( px Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġscale Ġ= ĠResources . getSystem (). display Metrics . density ĊĠĠĠ Ġreturn Ġ( px Value Ġ/ Ġscale Ġ+ Ġ 0 . 5 f ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġpx ( åĥı ç´ł ) ĠçļĦ åįķä½į Ġ è½¬ æĪĲä¸º Ġsp Ċ Ġ*/ Ċ fun Ġpx 2 sp ( px Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġfont Scale Ġ= ĠResources . getSystem (). display Metrics . scaled Density ĊĠĠĠ Ġreturn Ġ( px Value Ġ/ Ġfont Scale Ġ+ Ġ 0 . 5 f ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġsp ĠçļĦ åįķä½į Ġ è½¬ æĪĲä¸º Ġpx Ċ Ġ*/ Ċ fun Ġsp 2 px ( sp Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġfont Scale Ġ= ĠResources . getSystem (). display Metrics . scaled Density ĊĠĠĠ Ġreturn Ġ( sp Value Ġ* Ġfont Scale Ġ+ Ġ 0 . 5 f ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġdp ĠçļĦ åįķä½į Ġ è½¬ æĪĲä¸º Ġpx ( åĥı ç´ł ) Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ċ Ġ* Ġ@ param Ġdp Value Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġdip 2 px ( context : ĠContext , Ġdp Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġscale Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠ Ġreturn Ġ( dp Value Ġ* Ġscale Ġ+ Ġ 0 . 5 f ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġ Ġpx ( åĥı ç´ł ) Ġ è½¬ æĪĲä¸º dp Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ċ Ġ* Ġ@ param Ġpx Value Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġpx 2 dip ( context : ĠContext , Ġpx Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġscale Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠ Ġreturn Ġ( 0 . 5 f Ġ+ Ġpx Value Ġ/ Ġscale ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġsp ĠçļĦ åįķä½į Ġ è½¬ æĪĲä¸º Ġpx ( åĥı ç´ł ) Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ċ Ġ* Ġ@ param Ġsp Value Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġsp 2 px ( context : ĠContext , Ġsp Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġscale Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠ Ġreturn Ġ( sp Value Ġ* Ġscale Ġ+ Ġ 0 . 5 f ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġæł¹æį® æīĭæľº çļĦ åĪĨ è¾ ¨ çİĩ ä»İ Ġ Ġpx ( åĥı ç´ł ) Ġ è½¬ æĪĲä¸º sp Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ċ Ġ* Ġ@ param Ġpx Value Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġpx 2 sp ( context : ĠContext , Ġpx Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġscale Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠ Ġreturn Ġ( px Value Ġ/ Ġscale Ġ+ Ġ 0 . 5 f ). toInt () Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ dialog å®½åº¦ Ċ Ġ*/ Ċ fun Ġget Dialog W ( at y : ĠContext ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġdm Ġ= Ġat y . resources . display Metrics ĊĠĠĠ Ġ// Ġint Ġw Ġ= Ġat y . get WindowManager (). getDefault Display (). getWidth () Ġ- Ġ 1 0 0 ; ĊĠĠĠ Ġreturn Ġdm . width Pixels Ġ- Ġ 1 0 0 Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å±ı å¹ķ å®½åº¦ Ċ Ġ*/ Ċ // Display Metrics Ġdm Ġ= ĠContext . getResources (). getDisplay Metrics (); Ċ fun Ġscreen W (): ĠInt Ġ= ĠResources . getSystem (). display Metrics . width Pixels Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å±ı å¹ķ é«ĺåº¦ Ċ Ġ*/ Ċ fun Ġscreen H (): ĠInt Ġ= ĠResources . getSystem (). display Metrics . height Pixels Ċ Ċ fun Ġscreen Shot With StatusBar ( activity : ĠActivity ?): ĠBitmap ? Ġ{ ĊĠĠĠ Ġval Ġview Ġ= Ġactivity ?. window ?. decor View ĊĠĠĠ Ġreturn Ġscreen Shot ( view !! , Ġ 0 , Ġ 0 , Ġview . width , Ġview . height ) Ċ } Ċ Ċ fun Ġscreen Shot With StatusBar ( fragment : ĠFragment ): ĠBitmap ? Ġ= ĊĠĠĠ Ġscreen Shot With StatusBar ( fragment . activity ) Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å½ĵåīį å±ı å¹ķ æĪª åĽ¾ ï¼Į ä¸į åĮħåĲ« çĬ¶ æ¿ ģ æłı Ċ Ġ* Ċ Ġ* Ġ@ param Ġactivity Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġscreen Shot Without StatusBar ( activity : ĠActivity ): ĠBitmap ? Ġ{ ĊĠĠĠ Ġval Ġview Ġ= Ġactivity . window . decor View ĊĠĠĠ Ġval Ġframe Ġ= ĠRect () ĊĠĠĠ Ġactivity . window . decor View . getWindow Visible Display Frame ( frame ) ĊĠĠĠ Ġval Ġstatus Bar Height Ġ= Ġframe . top ĊĠĠĠ Ġval Ġwidth Ġ= Ġscreen W () ĊĠĠĠ Ġval Ġheight Ġ= Ġscreen H () ĊĠĠĠ Ġreturn Ġscreen Shot ( view , Ġ 0 , Ġstatus Bar Height , Ġwidth , Ġheight Ġ- Ġstatus Bar Height ) Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ æŁĲä¸ª View ĠçļĦ æĪª å±ı Ċ Ġ* Ġ@ param Ġview ĠéľĢè¦ģ æĪª å±ı çļĦ View Ċ Ġ* Ġ@ param Ġpadding X ĠéľĢè¦ģ åģı ç¦» X è½´ çļĦ ä½į ç§» Ċ Ġ* Ġ@ param Ġpadding Y ĠéľĢè¦ģ åģı ç§» Y è½´ çļĦ ä½į ç§» Ċ Ġ* Ġ@ param Ġwidth ĠéľĢè¦ģ ç»ĺ åĪ¶ çļĦ åĽ¾åĥı çļĦ å®½åº¦ Ċ Ġ* Ġ@ param Ġheight ĠéľĢè¦ģ ç»ĺ åĪ¶ çļĦ åĽ¾åĥı çļĦ é«ĺåº¦ Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun Ġscreen Shot ( view : ĠView , Ġpadding X : ĠInt , Ġpadding Y : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ): ĠBitmap ? Ġ{ ĊĠĠĠ Ġview . is Drawing Cache Enabled Ġ= Ġtrue ĊĠĠĠ Ġview . build Drawing Cache () ĊĠĠĠ Ġval Ġbmp Ġ= Ġview . drawing Cache ĊĠĠĠ Ġval Ġbp : ĠBitmap ? Ġ= ĠBitmap . create Bitmap ( bmp , Ġpadding X , Ġpadding Y , Ġwidth , Ġheight ) ĊĠĠĠ Ġview . destroy Drawing Cache () ĊĠĠĠ Ġreturn Ġbp Ċ }