package Ġcom . a qr le i . widget . text Ċ Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . text . style . Replacement Span Ċ Ċ /** Ċ Ġ* Ġcreated Ġby ĠA qr Le i Ġon Ġ 2 0 1 9 - 1 2 - 0 7 Ċ Ġ*/ Ċ class ĠBackground Shape Span Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġprivate Ġval ĠtextColor : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġsolid Color : ĠInt Ġ= ĠColor . TRANSP ARENT , ĊĠĠĠ Ġprivate Ġval Ġstroke Color : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval ĠstrokeWidth : ĠInt Ġ= Ġ 1 , ĊĠĠĠ Ġprivate Ġval Ġcorner Radius : ĠFloat Ġ= Ġ 0 F , ĊĠĠĠ Ġprivate Ġval Ġpadding Start : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġprivate Ġval Ġpadding End : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġprivate Ġval Ġstyle : ĠStyle Ġ= ĠStyle . ST RO KE Ċ ) Ġ: ĠRe placement Span () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Bg Paint : ĠPaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Size ( ĊĠĠĠĠĠĠĠ Ġpaint : ĠPaint , ĊĠĠĠĠĠĠĠ Ġtext : ĠCharSequence ?, ĊĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠ Ġend : ĠInt , ĊĠĠĠĠĠĠĠ Ġfm : ĠPaint . Font Metrics Int ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( paint . measure Text ( text , Ġstart , Ġend ) Ġ+ Ġpadding Start Ġ+ Ġpadding End ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( ĊĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġtext : ĠCharSequence , ĊĠĠĠĠĠĠĠ Ġstart : ĠInt , ĊĠĠĠĠĠĠĠ Ġend : ĠInt , ĊĠĠĠĠĠĠĠ Ġx : ĠFloat , ĊĠĠĠĠĠĠĠ Ġtop : ĠInt , ĊĠĠĠĠĠĠĠ Ġy : ĠInt , ĊĠĠĠĠĠĠĠ Ġbottom : ĠInt , ĊĠĠĠĠĠĠĠ Ġpaint : ĠPaint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Bg Paint . color Ġ= Ġsolid Color ĊĠĠĠĠĠĠĠ Ġm Bg Paint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġget Size ( paint , Ġtext , Ġstart , Ġend , Ġpaint . font Metrics Int ) ĊĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= Ġ( size Ġ- Ġpaint . measure Text ( text . sub Sequence ( start , Ġend ). toString ())) Ġ/ Ġ 2 . 0 F ĊĠĠĠĠĠĠĠ Ġval Ġo val Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ+ Ġpaint . as cent () Ġ- Ġpadding , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ+ Ġsize , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ+ Ġpaint . desc ent () Ġ+ Ġpadding ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( oval , Ġcorner Radius , Ġcorner Radius , Ġm Bg Paint ) ĊĠĠĠĠĠĠĠ Ġif Ġ( style Ġ== ĠStyle . ST RO KE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Paint . color Ġ= Ġstroke Color Ġ?: ĠtextColor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Paint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Paint . stroke Width Ġ= ĠstrokeWidth . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( oval , Ġcorner Radius , Ġcorner Radius , Ġm Bg Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠtextColor ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text ( text , Ġstart , Ġend , Ġx Ġ+ Ġpadding , Ġy . toFloat (), Ġpaint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠStyle Ġ{ ĊĠĠĠĠĠĠĠ ĠF ILL , ĠST RO KE ĊĠĠĠ Ġ} Ċ }