package Ġcom . st ef an os iano . power ful _ libraries . image view . shape . draw ers Ċ Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġcom . st ef an os iano . power ful _ libraries . image view . shape . P iv Shape Scale Type Ċ import Ġcom . st ef an os iano . power ful _ libraries . image view . shape . Shape Options Ċ import Ġjava . lang . ref . Weak Reference ĊĊ Ċ internal Ġabstract Ġclass ĠBase Rounded Drawer Ċ /** ĠShape Drawer Ġthat Ġdraw s Ġan Ġo val Ġas Ġshape . Ġ*/ Ċ ( bitmap : ĠBitmap ?) Ġ: ĠShape Drawer Ġ{ ĊĊĠĠĠ Ġ/** ĠShader Ġto Ġefficiently Ġdraw Ġthe Ġshape Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Bitmap Shader : ĠBitmap Shader ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĠPaint Ġused Ġto Ġdraw Ġthe Ġimage Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Bitmap Paint Ġ= ĠPaint () ĊĊĠĠĠ Ġ/** ĠPaint Ġused Ġto Ġdraw Ġthe Ġshape Ġbackground Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Back Paint Ġ= ĠPaint () ĊĊĠĠĠ Ġ/** ĠPaint Ġused Ġto Ġdraw Ġthe Ġshape Ġborder Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Border Paint Ġ= ĠPaint () ĊĊĠĠĠ Ġ/** ĠPaint Ġused Ġto Ġdraw Ġthe Ġshape Ġforeground Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Front Paint Ġ= ĠPaint () ĊĊĠĠĠ Ġ/** ĠBackground Ġdrawable Ġto Ġdraw Ġunder Ġthe Ġshape Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Background Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĠFore ground Ġdrawable Ġto Ġdraw Ġover Ġthe Ġshape Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Foreground Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĠMatrix Ġused Ġto Ġdraw Ġthe Ġshape Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Matrix : ĠMatrix ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĠMatrix Ġused Ġto Ġdraw Ġthe Ġshape Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Orig Bitmap : ĠWeak Reference < Bitmap >? Ġ= Ġnull ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ!= Ġnull Ġ&& Ġ! bitmap . is Re cyc led ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Orig Bitmap Ġ= ĠWeak Reference ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Bitmap Shader Ġ= ĠBitmap Shader ( bitmap , ĠShader . Tile Mode . CLAMP , ĠShader . Tile Mode . CLAMP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Shader ?. set Local Matrix ( m Matrix ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchange Drawable ( drawable : ĠDrawable ?) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġrequire Bitmap (): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġchange Bitmap ( bitmap : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Bitmap Shader Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm Orig Bitmap ?. clear () ĊĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ!= Ġnull Ġ&& Ġ! bitmap . is Re cyc led ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Orig Bitmap Ġ= ĠWeak Reference ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Bitmap Shader Ġ= ĠBitmap Shader ( bitmap , ĠShader . Tile Mode . CLAMP , ĠShader . Tile Mode . CLAMP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Shader ?. set Local Matrix ( m Matrix ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Bitmap Paint . shader Ġ= Ġm Bitmap Shader ĊĠĠĠĠĠĠĠ Ġm Bitmap Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Bitmap Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Matrix ( scale Type : ĠP iv Shape Scale Type , Ġmatrix : ĠMatrix ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Matrix Ġ= Ġmatrix ĊĠĠĠĠĠĠĠ Ġm Bitmap Shader ?. set Local Matrix ( matrix ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ( shape Options : ĠShape Options ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Foreground Drawable Ġ= Ġshape Options . foreground Drawable ĊĠĠĠĠĠĠĠ Ġm Background Drawable Ġ= Ġshape Options . background Drawable ĊĊĠĠĠĠĠĠĠ Ġm Back Paint . color Ġ= Ġshape Options . backgroundColor ĊĠĠĠĠĠĠĠ Ġm Back Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Back Paint . style Ġ= ĠPaint . Style . FILL ĊĊĠĠĠĠĠĠĠ Ġm Border Paint . color Ġ= Ġshape Options . border Color ĊĠĠĠĠĠĠĠ Ġm Border Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Border Paint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġm Border Paint . stroke Width Ġ= Ġshape Options . border Width . toFloat () ĊĊĠĠĠĠĠĠĠ Ġm Front Paint . color Ġ= Ġshape Options . foreground Color ĊĠĠĠĠĠĠĠ Ġm Front Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Front Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas , Ġborder Bounds : ĠRect F , Ġshape Bounds : ĠRect F , Ġimage Bounds : ĠRect F ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// background ĊĠĠĠĠĠĠĠ Ġif Ġ( m Back Paint . color Ġ!= ĠColor . TRANSP ARENT ) Ġdraw Paint ( canvas , Ġshape Bounds , Ġm Back Paint ) ĊĊĠĠĠĠĠĠĠ Ġm Background Drawable ?. setBounds ( image Bounds . left . toInt (), Ġimage Bounds . top . toInt (), Ġimage Bounds . right . toInt (), Ġimage Bounds . bottom . toInt ()) ĊĠĠĠĠĠĠĠ Ġm Background Drawable ?. draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġ// image ĊĠĠĠĠĠĠĠ Ġif ( m Orig Bitmap ?. get ()?. is Re cyc led Ġ!= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Paint ( canvas , Ġimage Bounds , Ġm Bitmap Paint ) ĊĊĠĠĠĠĠĠĠ Ġm Foreground Drawable ?. setBounds ( image Bounds . left . toInt (), Ġimage Bounds . top . toInt (), Ġimage Bounds . right . toInt (), Ġimage Bounds . bottom . toInt ()) ĊĠĠĠĠĠĠĠ Ġm Foreground Drawable ?. draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġ// foreground ĊĠĠĠĠĠĠĠ Ġif Ġ( m Front Paint . color Ġ!= ĠColor . TRANSP ARENT ) Ġdraw Paint ( canvas , Ġshape Bounds , Ġm Front Paint ) ĊĊĠĠĠĠĠĠĠ Ġ// border ĊĠĠĠĠĠĠĠ Ġif Ġ( m Border Paint . stroke Width Ġ> Ġ 0 Ġ&& Ġm Border Paint . color Ġ!= ĠColor . TRANSP ARENT ) Ġdraw Border ( canvas , Ġborder Bounds , Ġshape Bounds , Ġimage Bounds , Ġm Border Paint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġdraw Paint ( canvas : ĠCanvas , Ġbounds : ĠRect F , Ġpaint : ĠPaint ) ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġdraw Border ( canvas : ĠCanvas , Ġborder Bounds : ĠRect F , Ġshape Bounds : ĠRect F , Ġimage Bounds : ĠRect F , Ġborder Paint : ĠPaint ) Ċ } Ċ