如何在android jetpack compose中通过uri预览图像

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

在android jetpack compose中,我使用navigationController将图像uri(照片中的图像)传输到下一个视图,然后在下一个视图中显示图像。但是当我在下一个视图中写预览时。那么我该怎么做呢?

这是代码:

@Composable
fun TestCompose(navController: NavController, uri: String) {
    val uriDecode = URLDecoder.decode(uri, StandardCharsets.UTF_8.toString())
    val photoUri = Uri.parse(uriDecode)
    val painter = rememberAsyncImagePainter(
        ImageRequest
            .Builder(LocalContext.current)
            .data(data = photoUri)
            .build()
    )

    Image(
        painter = painter,
        contentDescription = "image",
        contentScale = ContentScale.Fit
    )

}

@Preview(showBackground = true, showSystemUi = true)
@Composable
fun TestViewPreview() {
    // how to pass an placeholder image uri into the uri parameter?
    TestCompose(navController = rememberNavController() , uri = "")
}

我想通过预览查看此视图中的图像

android android-jetpack-compose preview
1个回答
0
投票

您可以像这样传递 placeholderUri :

@Preview(showBackground = true, showSystemUi = true)
@Composable
fun TestViewPreview() {
    val placeholderUri = "https://picsum.photos/200/300" // Placeholder image URI

    TestCompose(navController = rememberNavController() , uri = placeholderUri)
}

如果占位符图像在可绘制对象中可用,那么您可以像这样传递它:

@Preview(showBackground = true, showSystemUi = true)
@Composable
fun TestViewPreview() {
    val placeholderUri = "android.resource://${LocalContext.current.packageName}/${R.drawable.ic_launcher}"

    TestCompose(navController = rememberNavController() , uri = placeholderUri)
}

希望这有帮助!如果您还需要其他东西,请告诉我:)

© www.soinside.com 2019 - 2024. All rights reserved.