package Ġcom . h azz . ku ang ji . utils ĊĊ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Component Callbacks Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . util . Display Metrics Ċ Ċ /** Ċ Ġ* ĠéĢļè¿ĩ ä¿®æĶ¹ ç³»ç»Ł åıĤæķ° æĿ¥ éĢĤ éħį android è®¾å¤ĩ Ġ, å±ı å¹ķ éĢĤ éħį æĸ¹æ¡Ī Ċ Ġ*/ Ċ Ċ object ĠD ensity Utils Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġapp Density : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġprivate Ġvar Ġapp Scaled Density : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġprivate Ġvar Ġapp Display Metrics : ĠDisplay Metrics ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbar Height : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġset Density ( application : ĠApplication ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ application çļĦ Display Metrics ĊĠĠĠĠĠĠĠ Ġapp Display Metrics Ġ= Ġapplication . resources . display Metrics ĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ çĬ¶æĢģ æłı é«ĺåº¦ ĊĠĠĠĠĠĠĠ Ġbar Height Ġ= Ġget StatusBar Height ( application ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( app Density Ġ== Ġ 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ çļĦæĹ¶åĢĻ èµĭåĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Density Ġ= Ġapp Display Metrics !!. density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Scaled Density Ġ= Ġapp Display Metrics !!. scaled Density ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ·»åĬł åŃĹ ä½ĵ åıĺåĮĸ çļĦ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . register Component Callbacks ( object Ġ: ĠComponent Callbacks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åŃĹ ä½ĵ æĶ¹åıĺ åĲİ , å°Ĩ app Scaled Density éĩįæĸ° èµĭåĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Config Ġ!= Ġnull Ġ&& Ġnew Config . font Scale Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Scaled Density Ġ= Ġapplication . resources . display Metrics . scaled Density ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Low Memory () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ çĬ¶æĢģ æłı é«ĺåº¦ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġcontext ĊĠĠĠĠ Ġ* Ġ@ return Ġ çĬ¶æĢģ æłı é«ĺåº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġget StatusBar Height ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ èİ·å¾Ĺ çĬ¶æĢģ æłı é«ĺåº¦ ĊĠĠĠĠĠĠĠ Ġval Ġresource Id Ġ= Ġcontext . resources . getIdentifier (" status _ bar _ height ", Ġ" dim en ", Ġ" android ") ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . resources . get Dimension Pixel Size ( resourceId ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// æŃ¤ æĸ¹æ³ķ åľ¨ Base Activity ä¸Ń åģļ åĪĿå§ĭåĮĸ ( å¦Ĥæŀľ ä¸į å°ģè£ħ Base Activity çļĦè¯Ŀ , çĽ´æİ¥ çĶ¨ ä¸ĭéĿ¢ éĤ£ ä¸ª æĸ¹æ³ķ å°± å¥½ ) ĊĠĠĠ Ġfun ĠsetDefault ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset App Orientation ( activity , Ġ" width ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æŃ¤ æĸ¹æ³ķ çĶ¨äºİ åľ¨ æŁĲ ä¸Ģä¸ª Activity éĩĮéĿ¢ æĽ´æĶ¹ éĢĤ éħį çļĦ æĸ¹åĲĳ ĊĠĠĠ Ġfun Ġset Orientation ( activity : ĠActivity , Ġorientation : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset App Orientation ( activity , Ġorientation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ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 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpx 2 dip ( context : ĠContext , Ġpx Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠĠĠĠĠ Ġreturn Ġ( px Value Ġ/ Ġscale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġtarget Density ĊĠĠĠĠ Ġ* Ġtarget Scaled Density ĊĠĠĠĠ Ġ* Ġtarget Density D pi ĊĠĠĠĠ Ġ* Ġ è¿Ļ ä¸īä¸ª åıĤæķ° æĺ¯ ç»Łä¸Ģ ä¿®æĶ¹ è¿ĩ åĲİ çļĦåĢ¼ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġorientation : æĸ¹åĲĳ åĢ¼ , ä¼łåħ¥ width æĪĸ height ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset App Orientation ( activity : ĠActivity ?, Ġorientation : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Density : ĠFloat ĊĊĠĠĠĠĠĠĠ Ġif Ġ( orientation Ġ== Ġ" height ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Density Ġ= Ġ( app Display Metrics !!. height Pixels Ġ- Ġbar Height ) Ġ/ Ġ 6 6 7 f ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Density Ġ= Ġapp Display Metrics !!. width Pixels Ġ/ Ġ 3 7 5 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Scaled Density Ġ= Ġtarget Density Ġ* Ġ( app Scaled Density Ġ/ Ġapp Density ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Density D pi Ġ= Ġ( 1 6 0 Ġ* Ġtarget Density ). toInt () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ æľĢåĲİ åľ¨ è¿ĻéĩĮ å°Ĩ ä¿®æĶ¹ è¿ĩ åĲİ çļĦåĢ¼ èµĭ ç»Ļ ç³»ç»Ł åıĤæķ° ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġåıª ä¿®æĶ¹ Activity çļĦ density åĢ¼ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Display Metrics Ġ= Ġactivity !!. resources . display Metrics ĊĠĠĠĠĠĠĠ Ġactivity Display Metrics . density Ġ= Ġtarget Density ĊĠĠĠĠĠĠĠ Ġactivity Display Metrics . scaled Density Ġ= Ġtarget Scaled Density ĊĠĠĠĠĠĠĠ Ġactivity Display Metrics . density D pi Ġ= Ġtarget Density D pi ĊĠĠĠ Ġ} Ċ }