[英]Image scale using aspect ratio coil using jetpack compose
I need to display image from uri/filepath, big image 1300x1600 resolution.我需要显示来自 uri/文件路径的图像,大图像 1300x1600 分辨率。 Need to maintain aspect ratio.需要保持纵横比。 i tried with coil but didn't give desirable result, still shows big image.我试过线圈但没有给出理想的结果,仍然显示大图像。 not sure whats wrong here what i tried不确定我试过的有什么问题
val painter =
rememberAsyncImagePainter(imageUri.value)
Image(
painter = painter,
contentScale = ContentScale.Fit,
contentDescription = null,
modifier = Modifier
.padding(16.dp, 0.dp, 16.dp, 0.dp)
.fillMaxWidth()
.aspectRatio(painter.intrinsicSize.height / painter.intrinsicSize.width)
)
You are getting size unspecified
if one of view width/height is calculated as zero.如果视图宽度/高度之一计算为零,您将获得size unspecified
。
You can use something like:你可以使用类似的东西:
Image(
painter = painter,
contentScale = ContentScale.Fit,
contentDescription = "contentDescription",
modifier = Modifier
.padding(16.dp, 0.dp, 16.dp, 0.dp)
.fillMaxWidth()
.then(
(painter.state as? AsyncImagePainter.State.Success)
?.painter
?.intrinsicSize
?.let { intrinsicSize ->
Modifier.aspectRatio(intrinsicSize.width / intrinsicSize.height)
} ?: Modifier
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.