package Ġcom . sp ende sk . gr apes . internal . libs . glide Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġcom . bump tech . glide . load . Key Ċ import Ġcom . bump tech . glide . load . engine . bitmap _ recycle . Bitmap Pool Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Bitmap Transformation Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Transformation Utils Ċ import Ġjava . security . Message Digest Ċ Ċ /** Ċ Ġ* ĠApplies Ġthis Ġtransformation Ġto Ġan ĠImage Ġto Ġget Ġa Ġrounded Ġimage Ġwith Ġa Ġborder . Ċ Ġ* Ġhttps :// android -- examples . blogspot . fr / 2 0 1 5 / 1 1 / android - circular - bitmap - with - border - and . html Ċ Ġ* Ċ Ġ* Ġ@ author ĠV iv ien ĠMa he Ċ Ġ* Ġ@ since Ġ 2 8 / 0 1 / 2 0 1 9 Ċ Ġ*/ Ċ class ĠCircle Crop Border Transformation ( ĊĠĠĠ Ġprivate Ġval ĠborderWidth : ĠInt , ĊĠĠĠ Ġprivate Ġval ĠborderColor : ĠInt Ċ ) Ġ: ĠBitmap Transformation () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠVERSION Ġ= Ġ 1 Ġ// ĠThe Ġversion Ġof Ġthis Ġtransformation , Ġincrement ed Ġto Ġcorrect Ġan Ġerror Ġin Ġa Ġprevious Ġversion . ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID : ĠString Ġ= Ġ" com . bump tech . glide . load . resource . bitmap . Circle Crop .$ VERSION " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠID _ BYTES : ĠByteArray Ġ= ĠID . toByteArray ( Key . CHARSET ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Disk CacheKey ( message Digest : ĠMessage Digest ) Ġ= Ġmessage Digest . update ( ID _ BYTES ) ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( pool : ĠBitmap Pool , Ġto Transform : ĠBitmap , Ġout Width : ĠInt , Ġout Height : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcircle Ġ= ĠTransformation Utils . circle Crop ( pool , Ġto Transform , Ġout Width , Ġout Height ) ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Border To Circular Bitmap ( circle , ĠborderWidth , ĠborderColor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?) Ġ= Ġother Ġis ĠCircle Crop Border Transformation ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= ĠID . hashCode () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCustom Ġmethod Ġto Ġadd Ġa Ġborder Ġaround Ġcircular Ġbitmap . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Border To Circular Bitmap ( src Bitmap : ĠBitmap , ĠborderWidth : ĠInt , ĠborderColor : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCalculate Ġthe Ġcircular Ġbitmap Ġwidth Ġwith Ġborder ĊĠĠĠĠĠĠĠ Ġval Ġdst Bitmap Width Ġ= Ġsrc Bitmap . width Ġ+ ĠborderWidth Ġ* Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġval Ġdst Bitmap Ġ= ĠBitmap . create Bitmap ( dst Bitmap Width , Ġdst Bitmap Width , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( dst Bitmap ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( src Bitmap , ĠborderWidth . toFloat (), ĠborderWidth . toFloat (), Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠborderColor ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= ĠborderWidth . toFloat () ĊĠĠĠĠĠĠĠ Ġpaint . is Anti Alias Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ// ĠDraw Ġthe Ġcircular Ġborder Ġaround Ġcircular Ġbitmap ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( canvas . width Ġ/ Ġ 2 ). toFloat (), Ġ// Ġcx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( canvas . width Ġ/ Ġ 2 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( canvas . width Ġ/ Ġ 2 Ġ- ĠborderWidth Ġ/ Ġ 2 ). toFloat (), Ġ// Ġradius ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠFree Ġthe Ġnative Ġobject Ġassociated Ġwith Ġthis Ġbitmap ĊĠĠĠĠĠĠĠ Ġsrc Bitmap . recycle () ĊĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġthe Ġborder ed Ġcircular Ġbitmap ĊĠĠĠĠĠĠĠ Ġreturn Ġdst Bitmap ĊĠĠĠ Ġ} Ċ }