package Ġcom . key rus . key r nel . widget . layout Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġcom . key rus . key r nel . R Ċ Ċ /** Ċ Ġ* ĠClass Ġ: ĠAs pect Ratio Relative Layout Ċ Ġ* ĠInformation Ġ: ĠRelative Layout Ġwith ĠFix ĠAs pect ĠR atio Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠPaul ĠM ou gin Ġon Ġ 2 1 / 1 2 / 2 0 1 5 . Ċ Ġ*/ Ċ class ĠAs pect Ratio Relative Layout Ġ: Ġandroid . widget . Relative Layout Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġaspect Ratio : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġprivate Ġvar Ġvertical App ending : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructor ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructor ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġattrs ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructor ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġattrs ĊĠĠĠĠ Ġ* Ġ@ param Ġdef Style Attr ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( context , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialization Ġwith ĠXML Ġattributes ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġattrs ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtheme Ġ= Ġcontext . theme ĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= Ġtheme . obtain Styled Attributes ( attrs , ĠR . style able . Fixed AspectRatio View , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaspect Ratio Ġ= Ġarray . get Float ( R . style able . Fixed AspectRatio View _ aspect Ratio , Ġ- 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical App ending Ġ= Ġarray . getBoolean ( R . style able . Fixed AspectRatio View _ vertical App ending , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOverride Ġon Measure Ġto Ġmeasure Ġ& Ġfit Ġthe ĠAs pect ĠR atio ĊĠĠĠĠ Ġ* Ġ@ param Ġwidth Measure Spec ĊĠĠĠĠ Ġ* Ġ@ param Ġheight Measure Spec ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( aspect Ratio Ġ< Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoriginal Width Ġ= ĠMeasure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Height Ġ= ĠMeasure Spec . getSize ( height Measure Spec ) ĊĠĠĠĠĠĠĠ Ġif Ġ( vertical App ending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalculated Height Ġ= Ġ( original Width Ġ* Ġaspect Ratio ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , ĠMeasure Spec . make Measure Spec ( calculated Height , ĠMeasure Spec . EX ACT LY )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalculated Width Ġ= Ġ( original Height Ġ* Ġaspect Ratio ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( Measure Spec . make Measure Spec ( calculated Width , ĠMeasure Spec . EX ACT LY ), Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ