在 ImageView 中错误显示 Base64 图像

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

我正在开发一个 Android 项目,我需要从 API 检索 Base64 编码的图像并将其显示在 ImageView 中。但是,我遇到了图像无法正确显示的问题。当我记录 Base64 字符串时,我注意到与我从 Postman 获得的字符串相比,它显得不完整。

val data = response.data as? MasterDataModel ?: return
val supportedLogos = data.supportedLogo
    
val imageViews = listOf(binding.imgOne, binding.imgTwo, binding.imgThree, binding.imgFour)
    
for (i in 0 until minOf(supportedLogos.size, imageViews.size)) {
    val base64String = supportedLogos[i].logo
    base64String?.logDebug("BASE64IMAGE")
    val uri = Uri.parse(base64String)
    imageViews[i].setImageURI(uri)
    imageViews[i].visibility = View.VISIBLE
}

我已经确认从API获取的base64字符串是有效的,我用Postman进行了测试,并且在使用在线base64查看器测试时它显示正确。

为什么ImageView中数据显示不正确?在 Android 中处理 Base64 图像时,是否有任何常见的陷阱或我应该考虑的额外步骤?

android kotlin base64 imageview
1个回答
0
投票

我猜你已经完全收到了 Base64,但你的错误是你没有将 Base64 转换为位图。

因此,请阅读this答案,并注意删除 Base64 字符串开头的“data:image/png;base64,”。


关于不完整的日志,我应该说每条日志消息都有 4KB 的限制,如果你想绕过这个限制,你可以将你的字符串分割成一些小于 4KB 的块,然后打印它们。

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