Akshat
03/25/2025, 7:58 AMAkshat
03/25/2025, 8:01 AMTolriq
03/25/2025, 8:36 AMAkshat
03/25/2025, 9:24 AMfun Modifier.innerShadow(
color: Color = Color.Black,
cornersRadius: Dp = 0.dp,
spread: Dp = 0.dp,
blur: Dp = 0.dp,
offsetY: Dp = 0.dp,
offsetX: Dp = 0.dp
) = drawWithContent {
drawContent()
val rect = Rect(Offset.Zero, size)
val paint = Paint()
drawIntoCanvas {
paint.color = color
paint.isAntiAlias = true
it.saveLayer(rect, paint)
it.drawRoundRect(
left = rect.left,
top = <http://rect.top|rect.top>,
right = rect.right,
bottom = rect.bottom,
cornersRadius.toPx(),
cornersRadius.toPx(),
paint
)
val frameworkPaint = paint.asFrameworkPaint()
frameworkPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
if (blur.toPx() > 0) {
frameworkPaint.maskFilter = BlurMaskFilter(blur.toPx(), BlurMaskFilter.Blur.NORMAL)
}
val left = if (offsetX > 0.dp) {
rect.left + offsetX.toPx()
} else {
rect.left
}
val top = if (offsetY > 0.dp) {
<http://rect.top|rect.top> + offsetY.toPx()
} else {
<http://rect.top|rect.top>
}
val right = if (offsetX < 0.dp) {
rect.right + offsetX.toPx()
} else {
rect.right
}
val bottom = if (offsetY < 0.dp) {
rect.bottom + offsetY.toPx()
} else {
rect.bottom
}
paint.color = Color.Black
it.drawRoundRect(
left = left + spread.toPx() / 2,
top = top + spread.toPx() / 2,
right = right - spread.toPx() / 2,
bottom = bottom - spread.toPx() / 2,
cornersRadius.toPx(),
cornersRadius.toPx(),
paint
)
frameworkPaint.xfermode = null
frameworkPaint.maskFilter = null
}
}
Akshat
03/25/2025, 9:26 AMTolriq
03/25/2025, 9:27 AMTolriq
03/25/2025, 9:27 AMAkshat
03/25/2025, 9:44 AM1.8.0-beta03
build threw the same error.Akshat
03/25/2025, 9:44 AMTolriq
03/25/2025, 9:46 AMAkshat
03/25/2025, 10:39 AMTolriq
03/25/2025, 10:40 AMSergey Y.
03/25/2025, 7:22 PMSergey Y.
03/25/2025, 7:24 PMAkshat
03/30/2025, 5:58 AM