添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在jetpack compose中为svg矢量图像添加阴影

0 人关注

我有一个白色的箭头SVG矢量,设置在Image inside Box中,我想给它添加阴影,使它在白色背景下也能看到。下面是它的样子。

这是我想添加阴影的箭头。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="16dp"
    android:height="16dp"
    android:viewportWidth="16"
    android:viewportHeight="16">
  <group>
    <clip-path
        android:pathData="M16,16l-16,-0l-0,-16l16,-0z"/>
        android:pathData="M10.6667,13.333L5.3333,7.9997L10.6667,2.6663"
        android:strokeLineJoin="round"
        android:strokeWidth="1.5"
        android:fillColor="#00000000"
        android:strokeColor="#000"
        android:strokeLineCap="round"/>
  </group>
</vector>

要添加的阴影值是。

box-shadow: 0px 0px 6px 0px #00000040;

我试着在修改器中使用阴影,但它没有正常工作。

            Image(
                modifier = Modifier
                    .align(Alignment.CenterEnd)
                    .shadow(60.dp, RoundedCornerShape(6.dp))
                    .clickable {
                        coroutineScope.launch {
                            shouldAutoScroll = false
                            pagerState.animateScrollToPage(
                                page = (pagerState.currentPage + 1) % (pagerState.pageCount)
                painter = painterResource(id = R.drawable.ic_right_arrow),
                contentDescription = stringResource(id = R.string.image_thumbnail),
                colorFilter = ColorFilter.tint(roposoModel.arrowColor)

谁能帮我了解一下,我怎样才能做到这一点?

3 个评论
请添加完整的SVG图片,这样你的例子就可以重现了。
@PhilipDukhov 现在已经添加了svg图片。
构成的阴影是漂亮的 limited .但你的情况可能不会被解决,即使这个问题被解决了。我建议你 创造 一个功能请求,要求提供一个可以包裹图标内容的阴影。目前,你必须创建一个有阴影的资产。
android
kotlin
android-jetpack-compose
android-compose-image
Sonu Sourav
Sonu Sourav
发布于 2022-03-06
1 个回答
arne.jans
arne.jans
发布于 2022-04-08
已采纳
0 人赞同

你可以通过shape-parameter在composition-code的shadow-modifier中为阴影指定一个自定义形状。

            Image(
                modifier = Modifier
                    .size(50.dp)
                    .align(Alignment.Center)
                    .shadow(
                        elevation = 5.dp,
                        shape = GenericShape { size, _ ->
                            moveTo(0f, 0f)
                            relativeLineTo(0f, size.height)
                            relativeLineTo(size.width, -size.height / 2f)
                            close()
                    .clickable { onClick() },
                painter = painterResource(
                    id = R.drawable.ic_gallery_video_overlay
                contentDescription = null,