当前位置: 首页 > 知识库问答 >
问题:

如何使表面背景半透明在jetpack合成,但不是内容?

越俊驰
2023-03-14

我想实现这样的布局:

在XML中,我将在具有match_parent属性的相对布局中添加一个图像,然后添加一个将黑色半透明背景设置为match_parent的视图,然后添加内容。

在compose中,我把它变成了可以合成的:

@Composable
fun ImageCover(resourceId: Int, alpha: Float = 0.5f, content: @Composable () -> Unit) {
    Box(modifier = Modifier.fillMaxSize()) {
        Image(
            painter = painterResource(id = resourceId),
            contentDescription = null,
            modifier = Modifier.fillMaxSize(),
            contentScale = ContentScale.Crop
        )
        Surface(
            color = Color.Black, modifier = Modifier
                .fillMaxSize()
                .alpha(alpha)
        ) {
            content()
        }
    }
}

但问题是alpha应用于表面及其内容。所以不管我放什么内容,即使是另一个有背景的表面,也会是半透明的。在这里,例如,底部的两个句子和两个组件也将是半透明的。

共有1个答案

伍心水
2023-03-14

表面的背景色基于颜色属性。
alpha应用于颜色属性,而不是修饰符

类似于:

   Surface(
        color = Color.Black.copy(alpha = 0.6f), 
        modifier = Modifier.fillMaxSize()
    ){ 
       //....
    } 
 类似资料:
  • 我遇到了让情节本身透明的方法,但是我如何让背景透明呢?没有Qt有办法做到这一点吗?我希望情节在背景窗口上,例如,假设我正在运行Chrome,我希望情节在chrome窗口上,其内容可见。

  • 问题内容: 我使用PHP和GD库制作缩略图,但是我的代码将png透明度变成了纯黑色,是否有解决方案来改进我的代码? 这是我的PHP缩略图制作者代码: 谢谢 问题答案: 在imagecreatetruecolor()之后:

  • 问题内容: 使JTable背景透明不是那么容易。我只想查看单元格的文本内容。 问题答案: 如果表本身或单元格都不透明,则该表将是透明的: 如果表格位于中,则也将使其透明: 至少,您可以删除网格线: 一个简单的结果是一件很大的工作…

  • 问题内容: 所以我有一个问题。我环顾四周,环顾四周,但没有运气。我想使我的身体背景透明,但使文本不透明。现在,我保持相同的不透明度。这是我的代码: 问题答案: 不要为此使用,而是将背景设置为RGBA值,以仅使背景半透明。在您的情况下将是这样。

  • 问题内容: some stuff, images etc 我想要的是让.container div具有80%的不透明度,但是.site_content的内容为100% 设置CSS不透明度会影响所有子元素。有办法吗?使用jQuery吗? 由于此方法的使用方式,我宁愿避免在后面放置另一个透明div来获得效果的技术。 问题答案: 您需要在容器div上使用RGBA背景属性。。64、64、64是RGB颜色值

  • 我如何为调查表格添加背景,比如他们在这里是如何做的? 我说的是问题背后较小的黑色方框,而不是紫色背景。