android - Jetpack Compose 中阴影的 X 和 Y 偏移、模糊、不透明度和颜色?
问题描述
由于 Jetpack Compose 有这个限制,我正在寻找解决这个问题的解决方案?
也许 Canvas 可以做到这一点?如果有人可以提供代码片段,说明如何使用自定义实现(画布或其他东西)的 X 和 Y 偏移、模糊和不透明度等附加参数在Jetpack Compose中渲染阴影Card
,我真的很感激?Box
Column
Row
解决方案
由于这个代码片段,我设法找到了解决方案
fun Modifier.advancedShadow(
color: Color = Color.Black,
alpha: Float = 0f,
cornersRadius: Dp = 0.dp,
shadowBlurRadius: Dp = 0.dp,
offsetY: Dp = 0.dp,
offsetX: Dp = 0.dp
) = drawBehind {
val shadowColor = color.copy(alpha = alpha).toArgb()
val transparentColor = color.copy(alpha = 0f).toArgb()
drawIntoCanvas {
val paint = Paint()
val frameworkPaint = paint.asFrameworkPaint()
frameworkPaint.color = transparentColor
frameworkPaint.setShadowLayer(
shadowBlurRadius.toPx(),
offsetX.toPx(),
offsetY.toPx(),
shadowColor
)
it.drawRoundRect(
0f,
0f,
this.size.width,
this.size.height,
cornersRadius.toPx(),
cornersRadius.toPx(),
paint
)
}
}
推荐阅读
- android - 是否可以使用 Appium 运行 Android 仪器测试?
- reactjs - 如何在生产环境中访问我的 express API?
- java - 如何将列表与 JPA Hibernate 中存在的所有值完全匹配?
- google-cloud-platform - 将数据从 Oracle Golden Gate 馈送到 Big Query 的最佳方式是什么
- javascript - 显示剩余秒数或倒计时
- android - 是否可以在某些情况下不通过 safeArgs
- asp.net-core - 如何在.net core 3.1中获取连接到wifi的设备IP
- javascript - 我的 addEventListener() 不工作导致数据表
- firebase - 我可以使用哪个 oAuth 2.0 流程进行服务器到服务器的令牌发行?
- c# - 重定向在某些 MVC 视图中不起作用?