如何在Compose Image中显示位图

25

我有一个返回位图(包含QR码)的函数,我想在Image(组合函数)中显示该位图,但我没有找到任何方法将位图转换为ImageBitmap或仅显示该位图。

3个回答

45

根据这篇博客文章,应该可以像这样显示位图:

@Composable
fun BitmapImage(bitmap: Bitmap) {
    Image(
        bitmap = bitmap.asImageBitmap(),
        contentDescription = "some useful description",
    )
}

我自己还没有尝试过,但最近在研究使用Jetpack Compose显示地图时,看到了这篇博客文章。


1
在Compose中调用.asImageBitmap()会影响性能吗?也许需要使用derivedStateOf? - Erik B

10

Coil 能够在 Image 中显示一个 Bitmap

Image(
    painter = rememberAsyncImagePainter(imageBitmap),
    contentDescription = null,
)

...已经被废弃了,现在应该使用rememberAsyncImagePaintercoil.compose.rememberAsyncImagePainter)。 - Den Drobiazko

1

总结和更新答案:

在Compose中,有几种选项可以显示位图。

  1. 使用Image

    Image( bitmap = bitmap.asImageBitmap(), ...)

  2. 使用Coil AsyncImage

    AsyncImage(model = bitmap, ...)

如果在使用AsyncImage时出现不支持的异常,请检查是否使用了Bitmap而非ImageBitmap。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接