我有一个 Compose 代码片段,其中使用
rememberAsyncImagePainter
显示图像。即使我设置了 ContentScale.Inside
,图像也会被裁剪。这是代码:
val painter = rememberAsyncImagePainter(
imageLoader = imageLoader,
model = ImageRequest.Builder(LocalContext.current)
.data(data = url)
.crossfade(true)
.build()
)
Image(
modifier = Modifier
.size(40.dp)
.clip(CircleShape)
.background(MaterialTheme.colorScheme.surfaceContainerHighest),
painter = painter,
contentDescription = null,
contentScale = ContentScale.Inside,
alignment = Alignment.Center
)
我需要图像完全适合圆形形状而不被裁剪。我无法使用
fillMaxSize()
,因为图像大小必须保持 40.dp
有人可以帮助我吗?
如上图所示,用户头像图像被裁剪/缩放以适合圆圈。它没有在圆内对齐。
ContentScale.Inside:缩放源以将宽高比保持在目标边界内。如果源在两个维度上都小于或等于目标,则其行为类似于
None
。内容将始终包含在范围内。
如果内容小于边界,则不会应用缩放
请参阅此处了解更多详细信息自定义图像