package Ġcom . mm m . my pup u . util Ċ Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . icu . text . SimpleDateFormat Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mm m . my pup u . R Ċ import Ġcom . mm m . my pup u . ui . bean . Goods Bean Ċ import Ġcom . mm m . my pup u . ui . bean . SearchResult Bean Ċ import Ġkotlinx . android . synt hetic . main . activity _ search . view .* Ċ import Ġkotlinx . android . synt hetic . main . item _ recommend . view .* Ċ import Ġjava . util .* Ċ import Ġkotlin . math . absolute Value Ċ Ċ class ĠMy Util Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġdip 2 px ( dp Value : ĠFloat , Ġcontext : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale : ĠFloat Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( dp Value Ġ* Ġscale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġjump View ( context : ĠContext , Ġnew Activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( context , Ġnew Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġget Now (): ĠList < Int > Ġ{ ĊĠĠĠ Ġ/* ĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġ 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSimpleDateFormat (" ĠHH : mm : ss "). format ( Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt ms Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĹ¶ åĮº ï¼ļ Ġ ä¸ľ åħ« åĮº ï¼Į åĮĹäº¬ æĹ¶éĹ´ ĠHO UR _ OF _ DAY Ġ 2 4 å°ı æĹ¶ åĪ¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ms . time Zone Ġ= ĠTime Zone . getTime Zone (" GMT + 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( t ms . get ( Calendar . HOUR _ OF _ DAY ), Ġt ms . get ( Calendar . MINUTE ), Ġt ms . get ( Calendar . SECOND )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġtalk ( context : ĠContext , Ġinput : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input . length Ġ< Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġinput , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġinput , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġto Two ( time : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( time Ġ> Ġ 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtime . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 0 " Ġ+ Ġtime . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmove To Middle ( re cyclerView : ĠRecyclerView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġre cyclerView . layout Manager Ġas ĠGrid LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Item Ġ= Ġmanager . findFirst Visible Item Position () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Item Ġ= Ġmanager . find Last Visible Item Position () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ŃéĹ´ ä½įç½® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmiddle Ġ= Ġ( first Item Ġ+ Ġlast Item ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġ( position Ġ- Ġmiddle ). absolute Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġre cyclerView . child Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . scrollTo Position ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġmiddle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . scroll By ( 0 , Ġ- re cyclerView . getChild At ( index ). top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . scroll By ( 0 , Ġre cyclerView . getChild At ( index ). top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġitem Add Click Animator ( holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// + Ġ åı· æĹ ĭ è½¬ ĠçĶ¨ Ġ è¡¥ éĹ´ åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Animation Ġ= ĠAnimation Utils . load Animation ( holder . item View . context , ĠR . anim . add ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . iv Add . start Animation ( m Animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æķ°åŃĹ éĥ¨åĪĨ çĽ´æİ¥ å¹³ ç§» Ġx è½´ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . tv Num . x Ġ-= Ġ 8 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ- Ġ åı· Ġ æĹ ĭ è½¬ å¹³ ç§» Ġ åĲĮæĹ¶ è¿Ľè¡Į ĠçĶ¨ Ġå±ŀæĢ§ åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Iv Sub Ġ= Ġholder . item View . iv Sub ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Animator R : ĠObject Animator Ġ= ĠObject Animator . of Float ( m Iv Sub , Ġ" rotation ", Ġ 0 f , Ġ 1 8 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Animator X : ĠObject Animator Ġ= ĠObject Animator . of Float ( m Iv Sub , Ġ" translation X ", Ġ 0 f , Ġ- 1 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanim ator Set Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . play To gether ( object Animator R , Ġobject Animator X ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . duration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġitem Sub Click Animator ( holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// + Ġ åı· æĹ ĭ è½¬ ĠçĶ¨ Ġ è¡¥ éĹ´ åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Animation Ġ= ĠAnimation Utils . load Animation ( holder . item View . context , ĠR . anim ._ add ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . iv Add . start Animation ( m Animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æķ°åŃĹ éĥ¨åĪĨ çĽ´æİ¥ å¹³ ç§» Ġx è½´ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . tv Num . x Ġ+= Ġ 8 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ- Ġ åı· Ġ æĹ ĭ è½¬ å¹³ ç§» Ġ åĲĮæĹ¶ è¿Ľè¡Į ĠçĶ¨ Ġå±ŀæĢ§ åĬ¨çĶ» ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Iv Sub Ġ= Ġholder . item View . iv Sub ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Animator R Sub : ĠObject Animator Ġ= ĠObject Animator . of Float ( m Iv Sub , Ġ" rotation ", Ġ- 1 8 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject Animator T Sub X : ĠObject Animator Ġ= ĠObject Animator . of Float ( m Iv Sub , Ġ" translation X ", Ġ- 1 2 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanim ator Set Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . play To gether ( object Animator T Sub X , Ġobject Animator R Sub ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . duration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġadd Stri ke out ( v : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç»Ļ æĸĩåŃĹ æ·»åĬł åĪłéĻ¤ çº¿ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . paint Flags Ġ= ĠPaint . STRI KE _ TH RU _ TEXT _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¼º åĪ¶ éļĲèĹı è½¯ éĶ® çĽĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġhide Key for ard ( et Search : ĠEditText Ġ, Ġmy Activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search . is Focus able Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search . is Focus able In Touch Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Method Manager Ġ= Ġmy Activity . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( et Search . window Token , ĠInput Method Manager . HIDE _ NOT _ ALWAYS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ çĦ ¦ çĤ¹ å¹¶ Ġ å¼º åĪ¶ æĺ¾ç¤º è½¯ éĶ® çĽĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġshow Key Board ( et Search : ĠEditText , Ġwindow : ĠWindow ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search . is Focus able In Touch Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ STATE _ ALWAYS _ VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸ī ç§į çĤ¹åĩ» çĬ¶æĢģ çļĦ åĪĩæį¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġrb Click Ti ems Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġchanged Item State 3 ( rb : ĠRadio Button , Ġm Activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Bean Ġ= ĠSearch Result Bean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( rb Click Ti ems ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä»İ å°ı åĪ° å¤§ æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb Click Ti ems ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb . setTextColor ( Context Compat . getColor ( m Activity , ĠR . color . color 2 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠContext Compat . get Drawable ( m Activity , ĠR . drawable . icon _ ind icate _ arrow _ top _ selected ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . setBounds ( 0 , Ġ 0 , Ġdrawable . minimum Width , Ġdrawable . minimum Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb . set Compound Draw ables ( null , Ġnull , Ġdrawable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Bean . goods List !!. clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Bean . goods List !!. addAll ( Goods Bean . new F ruit List ( 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä»İ å¤§ åĪ° å°ı æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb Click Ti ems ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb . setTextColor ( Context Compat . getColor ( m Activity , ĠR . color . color 2 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠContext Compat . get Drawable ( m Activity , ĠR . drawable . icon _ ind icate _ arrow _ bottom _ selected ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . setBounds ( 0 , Ġ 0 , Ġdrawable . minimum Width , Ġdrawable . minimum Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb . set Compound Draw ables ( null , Ġnull , Ġdrawable , Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Bean . goods List !!. clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Bean . goods List !!. addAll ( Goods Bean . new F ruit List ( 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¿ĺ åİŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb Click Ti ems Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb . setTextColor ( Context Compat . getColor ( m Activity , ĠR . color . color 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠContext Compat . get Drawable ( m Activity , ĠR . drawable . icon _ ind icate _ arrow _ no _ selected ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . setBounds ( 0 , Ġ 0 , Ġdrawable . minimum Width , Ġdrawable . minimum Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb . set Compound Draw ables ( null , Ġnull , Ġdrawable , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Bean . goods List !!. clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Bean . goods List !!. addAll ( Goods Bean . new F ruit List ( 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ---------- å° º å¯ ¸ è½¬æį¢ ---------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠInt . dp 2 px (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( 0 . 5 f Ġ+ Ġthis Ġ* ĠResources . getSystem (). display Metrics . density ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠInt . px 2 dp (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠResources . getSystem (). display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( this Ġ/ Ġscale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠFloat . dp 2 px (): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( 0 . 5 f Ġ+ Ġthis Ġ* ĠResources . getSystem (). display Metrics . density ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠFloat . px 2 dp (): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠResources . getSystem (). display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( this Ġ/ Ġscale Ġ+ Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}