我正在做一个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图像时,是否有一些常见的陷阱或需要考虑的额外步骤?
1条答案
按热度按时间qqrboqgw1#
我猜你收到的Base64完全,但你的错误是转换的Base64位图,你没有这样做。
因此,请阅读this答案,并注意删除Base64字符串开头的“data:image/png;base64”。
关于不完整的日志,我应该说,每个日志消息都有4KB的限制,如果你想绕过这个限制,你可以把你的字符串分成一些块,每个块小于4KB,然后打印它们。