Skip to content

Instantly share code, notes, and snippets.

@IMoHaMeDHaMdYI
Created August 25, 2019 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IMoHaMeDHaMdYI/342aceb1d2faffdff99dce2af8cfed69 to your computer and use it in GitHub Desktop.
Save IMoHaMeDHaMdYI/342aceb1d2faffdff99dce2af8cfed69 to your computer and use it in GitHub Desktop.
The final on draw I'm using
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val path = Path()
path.apply {
moveTo(shadowSize + cornerRadius, shadowSize + cornerRadius)
arcTo(0f, 0f, shadowSize * 2 + 2 * cornerRadius, shadowSize * 2 + 2 * cornerRadius, 180f, 90f, false)
moveTo(shadowSize + cornerRadius, shadowSize + cornerRadius)
arcTo(shadowSize, shadowSize, shadowSize + 2 * cornerRadius, shadowSize + 2 * cornerRadius, 270f, -90f, false)
}
canvas.drawPath(path, radialGradientPaint)
canvas.drawRect(RectF(cornerRadius + shadowSize, 0f, width - cornerRadius - shadowSize, shadowSize), linearGradientPaint)
canvas.save()
canvas.rotate(180f, xCenter, yCenter)
canvas.drawRect(RectF(cornerRadius + shadowSize, 0f, width - cornerRadius - shadowSize, shadowSize), linearGradientPaint)
canvas.drawPath(path, radialGradientPaint)
canvas.restore()
canvas.save()
canvas.rotate(90f, xCenter, yCenter)
canvas.drawRect(RectF(cornerRadius + shadowSize, 0f, height - cornerRadius - shadowSize, shadowSize), linearGradientPaint)
canvas.drawPath(path, radialGradientPaint)
canvas.restore()
canvas.rotate(270f, xCenter, yCenter)
canvas.drawRect(RectF(cornerRadius + shadowSize, 0f, height - cornerRadius - shadowSize, shadowSize), linearGradientPaint)
canvas.drawPath(path, radialGradientPaint)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment