base64 字符串在 kotlin 中并未完全实现

问题描述 投票: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查看器进行测试时它显示正确。

有人可以检查我的代码并提供有关为什么 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.