package Ġcom . easy . view . canvas . geometry . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Color Int Ċ import Ġcom . easy . view . R Ċ import Ġkotlin . math . min Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsh ish ou f eng Ġon Ġ 2 0 2 1 / 1 / 1 1 . Ċ Ġ* Ġemail : sh ou f eng shi @ lag ou . com Ċ Ġ* Ċ Ġ* Ġdesc : Ġ èĩªå®ļä¹ī åľĨ Ċ Ġ* Ċ Ġ*/ Ċ class ĠCircle View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġprivate Ġval ĠmContext : ĠContext , ĊĠĠĠ Ġattribute Set : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Att ar Style Id : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠView ( mContext , Ġattribute Set , Ġdef Att ar Style Id ) Ġ{ ĊĊĠĠĠ Ġ@ Color Int ĊĠĠĠ Ġvar Ġbg Color : ĠInt Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġbg Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġpaint . flags Ġ= ĠPaint . ANTI _ ALIAS _ FLAG ĊĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠmContext . obtain Styled Attributes ( R . style able . Circle View ) ĊĠĠĠĠĠĠĠ Ġbg Color Ġ= Ġarray . getColor ( R . style able . Circle View _ bgColor , ĠColor . WHITE ) ĊĊĠĠĠĠĠĠĠ Ġarray . recycle () ĊĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġbg Color ĊĠĠĠĠĠĠĠ Ġcanvas ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġheight ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpl Ġ= Ġpadding Left ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpr Ġ= Ġpadding Right ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpt Ġ= Ġpadding Top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpb Ġ= Ġpadding Bottom ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusable Width Ġ= Ġw Ġ- Ġ( pl Ġ+ Ġpr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusable Height Ġ= Ġh Ġ- Ġ( pt Ġ+ Ġpb ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġmin ( usable Width , Ġusable Height ) Ġ/ Ġ 2 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcx Ġ= Ġpl Ġ+ Ġusable Width Ġ/ Ġ 2 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcy Ġ= Ġpt Ġ+ Ġusable Height Ġ/ Ġ 2 . 0 f ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . draw Circle ( cx , Ġcy , Ġradius , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }