Android Compose Shadow

问题描述 投票:0回答:1

Android Jetpack Compose 阴影修改器应该是这样的吗?

Screenshot of Text with a shadow modifier

我很困惑。我已经编写了一些组件,并且正在测试我认为在 compose-1.2.0-alpha 中引入的阴影修改器。我现在使用的是1.2.1。我的组件是这样写的。

fun Labels() {
    Label(
        modifier = Modifier.shadow(
            elevation = 1.dp, 
            shape = RoundedCornerShape(4.dp), 
            ambientColor = Color.Blue, 
            spotColor = Color.Blue
        ), 
        text = field.name, 
        style = typographies.tagDefault
    )
}
出于我自己的原因,标签是文本的镜像副本,但这意味着它可以归结为::

fun Label(...) { BasicText( text, modifier, mergedStyle, onTextLayout, overflow, softWrap, maxLines, ) }
因此,在宏伟的计划中,根据我的理解,阴影效果最终会应用于

BasicText

,而不是其他任何东西。看起来就像图片中的情况,但为什么这么厚?为什么它不像 CSS 中的 
box-shadow
 那样更像一个边框?我怎样才能让它看起来像 CSS 中的 
box-shadow
 相似?我尝试了一些方法,例如将修改器移动到更高的组件并扰乱高度。但所做的一切只是让阴影变得有点模糊,也许还稍微变厚了。另外,如果我将形状更改为类似 
RoundedCornerShape(percent = 50)
 的形状,它几乎会用这种蓝色填充整个背景,这绝对不是有意的。

android android-jetpack-compose shadow
1个回答
0
投票
您可以使用样式参数:

Text( text = text, style = TextStyle( shadow = Shadow( color = Color.Black, offset = Offset(5f, 5f), blurRadius = 5f ) ), )
    
© www.soinside.com 2019 - 2024. All rights reserved.