package Ġcom . bar ack ba o . aic all ig raph y . view . widgets Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . AppCompat TextView Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . bar ack ba o . aic all ig raph y . R Ċ Ċ class ĠPercent TextView Ġ: ĠAppCompat TextView Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Text Size Percent Ġ= Ġ 1 f ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġbase Screen Height Ġ= Ġ 1 9 2 0 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġget Ġcurrent Ġscreen Ġwidth Ġand Ġheight Ġto Ġcalculate Ġthe Ġpercent ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Screen Height ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Manager Ġ= Ġcontext . getSystem Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwindow Manager . default Display . height ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetDefault Percent ( context ) ĊĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġtext Size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Attrs ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ ĠsetDefault Percent ( context ) ĊĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġtext Size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Attrs ( context , Ġattrs ) ĊĠĠĠĠĠĠĠ ĠsetDefault Percent ( context ) ĊĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġtext Size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Text Size ( unit : ĠInt , Ġsize : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvar Size Ġ= Ġsize ĊĠĠĠĠĠĠĠ Ġvar Size Ġ= Ġ( var Size Ġ* Ġm Text Size Percent ). toInt (). toFloat () ĊĠĠĠĠĠĠĠ Ġsuper . setText Size ( unit , Ġvar Size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Paint Flags ( flags : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . set Paint Flags ( flags ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Text Size ( size : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Text Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġsize ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġtext Size Percent : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Text Size Percent ĊĠĠĠĠĠĠĠ Ġset ( text Size Percent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Text Size Percent Ġ= Ġtext Size Percent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Text Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġtext Size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Text Size Percent ( unit : ĠInt , Ġtext Size Percent : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Text Size Percent Ġ= Ġtext Size Percent ĊĠĠĠĠĠĠĠ Ġset Text Size ( unit , Ġtext Size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Attrs ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Attrs Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Percent TextView ) ĊĠĠĠĠĠĠĠ Ġbase Screen Height Ġ= Ġcustom Attrs . getInt ( R . style able . Percent TextView _ base Screen Height , Ġbase Screen Height ) ĊĠĠĠĠĠĠĠ Ġcustom Attrs . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetDefault Percent ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscreen Height Ġ= Ġget Screen Height ( context ). toFloat () ĊĠĠĠĠĠĠĠ Ġm Text Size Percent Ġ= Ġscreen Height Ġ/ Ġbase Screen Height ĊĠĠĠ Ġ} Ċ }