package Ġcom . a qr le i . banner view . widget . indicator . drawer Ċ Ċ import Ġandroid . graphics . Canvas Ċ import Ġcom . a qr le i . banner view . widget . indicator . enums . Indicator Slide Mode Ċ import Ġcom . a qr le i . banner view . widget . indicator . options . Indicator Options Ċ Ċ /** Ċ Ġ* Ġcreated Ġby ĠA qr Le i Ġon Ġ 2 0 1 9 - 1 2 - 1 1 Ċ Ġ*/ Ċ class ĠCircle Drawer ( indicator Options : ĠIndicator Options ) Ġ: ĠBase Drawer ( indicator Options ) Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Draw Indicator ( canvas : ĠCanvas , ĠpageSize : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Normal ( canvas ) ĊĠĠĠĠĠĠĠ Ġdraw Slider ( canvas ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Normal ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnormal Indicator Width Ġ= Ġindicator Options . normal Indicator Width ĊĠĠĠĠĠĠĠ Ġm Paint . color Ġ= Ġindicator Options . normal Color ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġindicator Options . pageSize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcx Ġ= ĠmaxWidth Ġ/ Ġ 2 Ġ+ Ġ( indicator Options . indicator Gap Ġ+ Ġnormal Indicator Width ) Ġ* Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcy Ġ= ĠmaxWidth Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġnormal Indicator Width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Circle ( canvas , Ġcx , Ġcy , Ġradius ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Slider ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Paint . color Ġ= Ġindicator Options . checked Color ĊĠĠĠĠĠĠĠ Ġwhen Ġ( indicator Options . slide Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndicator Slide Mode . NORMAL , ĠIndicator Slide Mode . S MO OTH Ġ-> Ġdraw Circle Slider ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIndicator Slide Mode . W ORM Ġ-> Ġdraw W orm Slider ( canvas ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Circle Slider ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnormal Indicator Width Ġ= Ġindicator Options . normal Indicator Width ĊĠĠĠĠĠĠĠ Ġval Ġindicator Gap Ġ= Ġindicator Options . indicator Gap ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Position Ġ= Ġindicator Options . current Position ĊĠĠĠĠĠĠĠ Ġval Ġslide Progress Ġ= Ġindicator Options . slide Progress ĊĠĠĠĠĠĠĠ Ġval Ġcx Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ/ Ġ 2 Ġ+ Ġ( normal Indicator Width Ġ+ Ġindicator Gap ) Ġ* Ġ( current Position Ġ+ Ġslide Progress ) ĊĠĠĠĠĠĠĠ Ġval Ġcy Ġ= ĠmaxWidth Ġ/ Ġ 2 F ĊĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġindicator Options . checked Indicator Width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġdraw Circle ( canvas , Ġcx , Ġcy , Ġradius ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw W orm Slider ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġslide Progress Ġ= Ġindicator Options . slide Progress ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Position Ġ= Ġindicator Options . current Position ĊĠĠĠĠĠĠĠ Ġval Ġnormal Indicator Width Ġ= Ġindicator Options . normal Indicator Width ĊĠĠĠĠĠĠĠ Ġval Ġdistance Ġ= Ġindicator Options . indicator Gap Ġ+ Ġnormal Indicator Width ĊĠĠĠĠĠĠĠ Ġval Ġcx Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxWidth Ġ/ Ġ 2 Ġ+ Ġ( normal Indicator Width Ġ+ Ġindicator Options . indicator Gap ) Ġ* Ġcurrent Position ĊĠĠĠĠĠĠĠ Ġval Ġleft Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcx Ġ+ Ġ( distance Ġ* Ġ( slide Progress Ġ- Ġ 0 . 5 f ) Ġ* Ġ 2 . 0 f ). coerce At Least ( 0 f ) Ġ- ĠmaxWidth Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġright Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcx Ġ+ Ġ( distance Ġ* Ġslide Progress Ġ* Ġ 2 . 0 f ). coerce At Most ( distance ) Ġ+ ĠmaxWidth Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġrect F . set ( left , Ġ 0 f , Ġright , ĠmaxWidth ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( rect F , ĠmaxWidth , ĠmaxWidth , Ġm Paint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Circle ( canvas : ĠCanvas , Ġcx : ĠFloat , Ġcy : ĠFloat , Ġradius : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( cx , Ġcy , Ġradius , Ġm Paint ) ĊĠĠĠ Ġ} Ċ }