大多数 Jetpack Compose API 使用Dp作为尺寸单位,但有时需要像素值。如何将 dp 值转换为 px?举个例子,graphicsLayer()修饰符接受translationX/Y以像素为单位的参数。
这是我的组件:
@Composable
fun Cover(
name: String,
imageRes: Int,
modifier: Modifier = Modifier.padding(16.dp, 8.dp)
) {
Box(modifier) {
Card(
shape = RoundedCornerShape(4.dp),
backgroundColor = MaterialTheme.colors.secondary,
elevation = 4.dp
) {
Stack {
Image(
imageResource(imageRes),
modifier = Modifier
.gravity(Alignment.Center)
.aspectRatio(2f),
contentScale = ContentScale.Crop,
)
Text(
text = name,
modifier = Modifier
.gravity(Alignment.BottomStart)
.padding(8.dp),
style = MaterialTheme.typography.h6
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是它的外观:
我想在上面Image和后面显示一个暗渐变,Text以便文本易于阅读。我想我将不得不使用LinearGradient或RadialGradient但由于缺乏文档我无法做到。
编辑:这就是我想要做的,但使用 Jetpack Compose。