package Ġcom . am ir . arc view Ċ Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Drawable Ċ Ċ class ĠSemi Circle Drawable ( ĊĠĠĠ Ġprivate Ġvar Ġcolor : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġangle : ĠDirection , ĊĠĠĠ Ġcircle Radius : ĠFloat , ĊĠĠĠ Ġwidth : ĠInt , ĊĠĠĠ Ġelevation : ĠFloat Ċ ) Ġ: ĠDrawable () Ġ{ ĊĠĠĠ Ġ// http :// stackoverflow . com / questions / 1 5 9 6 2 7 4 5 / draw - a - sem ic ircle - in - the - background - of - a - view ĊĠĠĠ Ġprivate Ġval Ġcircle Radius : ĠFloat ĊĠĠĠ Ġprivate Ġval Ġelevation : ĠFloat ĊĠĠĠ Ġprivate Ġval Ġpaint : ĠPaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠ Ġprivate Ġval Ġrect F : ĠRect F ĊĠĠĠ Ġprivate Ġval Ġwidth : ĠInt ĊĊĠĠĠ Ġenum Ġclass ĠDirection Ġ{ ĊĠĠĠĠĠĠĠ ĠLEFT , ĠRIGHT , ĠTOP , ĠBOTTOM ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Color (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcolor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġ 3 2 bit Ġcolor Ġnot Ġa Ġcolor Ġresources . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcolor ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Color ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġcolor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcanvas . save () Ċ Ċ // ĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( Base Activity . screen Width Ġ/ Ġ 2 , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 Ġ* ĠBase Activity . density , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 Ġ* ĠBase Activity . density , Ġpaint ); Ċ Ċ // ĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( Arc ScrollView . screen Width Ġ/ Ġ 2 , ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcircle Radius Ġ+ Ġelevation , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcircle Radius Ġ- Ġelevation , Ġpaint ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ // ĠĠĠĠĠĠĠ ĠLog . e ( getClass (). getSimpleName (), Ġ" circle Rad : Ġ" Ġ+ Ġcircle Radius ); Ċ // Ċ // ĠĠĠĠĠĠĠ ĠRect Ġbounds Ġ= Ġget Bounds (); Ċ // Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( angle Ġ== ĠDirection . LEFT Ġ|| Ġangle Ġ== ĠDirection . RIGHT ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . scale ( 2 , Ġ 1 ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( angle Ġ== ĠDirection . RIGHT ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . translate (- ( bounds . right Ġ/ Ġ 2 ), Ġ 0 ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . scale ( 1 , Ġ 2 ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( angle Ġ== ĠDirection . BOTTOM ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . translate ( 0 , Ġ-( bounds . bottom Ġ/ Ġ 2 )); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // Ċ // ĠĠĠĠĠĠĠ Ġrect F . set ( bounds ); Ċ // Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( angle Ġ== ĠDirection . LEFT ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( rect F , Ġ 9 0 , Ġ 1 8 0 , Ġtrue , Ġpaint ); Ċ // ĠĠĠĠĠĠĠ Ġelse Ġif Ġ( angle Ġ== ĠDirection . TOP ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( rect F , Ġ- 1 8 0 , Ġ 1 8 0 , Ġtrue , Ġpaint ); Ċ // ĠĠĠĠĠĠĠ Ġelse Ġif Ġ( angle Ġ== ĠDirection . RIGHT ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( rect F , Ġ 2 7 0 , Ġ 1 8 0 , Ġtrue , Ġpaint ); Ċ // ĠĠĠĠĠĠĠ Ġelse Ġif Ġ( angle Ġ== ĠDirection . BOTTOM ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( rect F , Ġ 0 , Ġ 1 8 0 , Ġtrue , Ġpaint ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Alpha ( alpha : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHas Ġno Ġeffect ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Color Filter ( cf : ĠColor Filter ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHas Ġno Ġeffect ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Opacity (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNot ĠImplemented ĊĠĠĠĠĠĠĠ Ġreturn ĠPixel Format . TRANSL UC ENT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠĠĠ Ġpublic ĠSemi Circle Drawable () Ġ{ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġthis ( Color . BLUE , ĠDirection . TOP , Ġ 0 ); ĊĠĠĠ Ġ// ĠĠĠ Ġ} ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġrect F Ġ= ĠRect F () ĊĠĠĠĠĠĠĠ Ġthis . elevation Ġ= Ġelevation ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġthis . circle Radius Ġ= Ġcircle Radius ĊĠĠĠ Ġ} Ċ }