如何从 Jetpack Compose 中的 URL 加载图像? [复制]

Posted

技术标签:

【中文标题】如何从 Jetpack Compose 中的 URL 加载图像? [复制]【英文标题】:How to load image from URL in Jetpack Compose? [duplicate] 【发布时间】:2021-07-01 14:11:28 【问题描述】:

嗯,我正在研究 Compose UI,但我一直在做一些基本的事情。 其中之一是使用 Glide 显示来自 URL 的图像。

我已尝试以下代码,但未调用委托(onResourceReady 和 onLoadCleared)。

我错过了什么吗?

@Composable
fun loadPicture(url: String, contentDescription:String, modifier: Modifier = Modifier) 

  val bitmapState = remember  mutableStateOf<Bitmap?>(null) 
  Glide.with(LocalContext.current).asBitmap().load(url).into(
    object : CustomTarget<Bitmap>() 
        override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) 
            bitmapState.value = resource
        
        override fun onLoadCleared(placeholder: Drawable?) 
    
)

  bitmapState.value?.let 
    Image(
        contentDescription = contentDescription,
        bitmap = it.asImageBitmap(),
        modifier = modifier
    )
  

【问题讨论】:

【参考方案1】:

您可以使用 Coil 进行撰写:

https://coil-kt.github.io/coil/compose/

添加依赖:

implementation("io.coil-kt:coil-compose:1.3.1")

并像这样使用它:

Image(
    painter = rememberImagePainter("https://www.example.com/image.jpg"),
    contentDescription = null,
    modifier = Modifier.size(128.dp)
)

【讨论】:

您好,您对如何让Image 根据资产大小自动调整大小有什么建议吗?比如,假设我们在下载远程图像之前不知道它的尺寸。 @Eugene 只是不传递定义大小的修饰符。 我试过这个,但不幸的是我运气不好。我发了一个SO问题,你有时间可以看看吗? ***.com/q/68848663/2852849

以上是关于如何从 Jetpack Compose 中的 URL 加载图像? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jetpack compose 中检测 Horizo​​ntalPager 中的滑动?

没有从 jetpack compose 中的 rememberLauncherForActivityResult() 获取结果

Jetpack Compose 如何为 LazyColumn 懒惰地获取音乐文件及其元数据

如何从 Jetpack Compose TextField 关闭虚拟键盘?

Jetpack Compose 从入门到入门

Jetpack Compose 从入门到入门