Bitmap CreateRoundImage(Bitmap image) { var clipArea = Bitmap.CreateBitmap(image.Width, image.Height, Bitmap.Config.Argb8888); var canvas = new Canvas(clipArea); var paint = new Paint(PaintFlags.AntiAlias); canvas.DrawARGB(0, 0, 0, 0); canvas.DrawRoundRect(new RectF(0, 0, image.Width, image.Height), _iconRadius, _iconRadius, paint); paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn)); var rect = new Android.Graphics.Rect(0, 0, image.Width, image.Height); canvas.DrawBitmap(image, rect, rect, paint); image.Recycle(); image.Dispose(); image = null; canvas.Dispose(); canvas = null; paint.Dispose(); paint = null; rect.Dispose(); rect = null; return(clipArea); }