package Ġcom . ww y . android . view . round view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ Ċ /** Ċ Ġ*@ åĪĽå»º èĢħ ww y Ċ Ġ*@ åĪĽå»º æĹ¶éĹ´ Ġ 2 0 1 9 / 1 1 / 1 5 Ġ 1 9 : 2 5 Ċ Ġ*@ æııè¿° Ċ Ġ*/ Ċ class ĠRound Constraint Layout Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdelegate : ĠRound View Delegate Ġ= ĠRound View Delegate ( this , Ġcontext , Ġattrs ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( delegate . is Width Height Equal Ġ&& Ġwidth Ġ> Ġ 0 Ġ&& Ġheight Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Ġ= Ġwidth . coerce At Least ( height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasure Spec Ġ= ĠMeasure Spec . make Measure Spec ( max , ĠMeasure Spec . EX ACT LY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Measure ( measure Spec , Ġmeasure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Delegate (): ĠRound View Delegate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdelegate ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġleft : ĠInt , Ġtop : ĠInt , Ġright : ĠInt , Ġbottom : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Layout ( changed , Ġleft , Ġtop , Ġright , Ġbottom ) ĊĠĠĠĠĠĠĠ Ġif Ġ( delegate . is Radius Half Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate . corner Radius Ġ= Ġheight Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate . set Bg Selector () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }