package Ġcom . example . lt . custom view test . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġcom . example . lt . custom view test . extension . px Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . sin Ċ Ċ class ĠP ie View ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĠView ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġangles Ġ= Ġmutable ListOf ( 3 0 f , Ġ 6 0 f , Ġ 9 0 f , Ġ 1 2 0 f , Ġ 6 0 f ) ĊĠĠĠ Ġprivate Ġval Ġcolors Ġ= ĊĠĠĠĠĠĠĠ Ġmutable ListOf ( Color . BLUE , ĠColor . GREEN , ĠColor . MAG ENT A , ĠColor . RED , ĠColor . YELLOW ) ĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrect F : ĠRect F ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( w : ĠInt , Ġh : ĠInt , Ġold w : ĠInt , Ġold h : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Size Changed ( w , Ġh , Ġold w , Ġold h ) ĊĠĠĠĠĠĠĠ Ġrect F Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 f Ġ- Ġ 1 5 0 f . px , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ/ Ġ 2 f Ġ- Ġ 1 5 0 f . px , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 f Ġ+ Ġ 1 5 0 f . px , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ/ Ġ 2 f Ġ+ Ġ 1 5 0 f . px ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġvar Ġstart Angle Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġangles . forEach Indexed Ġ{ Ġindex , Ġangle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġcolors [ index ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradians Ġ= ĠMath . to Radians (( start Angle Ġ+ Ġangle Ġ/ Ġ 2 f ). toDouble ()). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . translate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 f . px Ġ* Ġcos ( radians ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 f . px Ġ* Ġsin ( radians ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( rect F , Ġstart Angle , Ġangle , Ġtrue , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Angle Ġ+= Ġangle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }