android ImageView中不正确显示base64图像

63lcw9qa  于 11个月前  发布在  Android
关注(0)|答案(1)|浏览(149)

我正在做一个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图像时,是否有一些常见的陷阱或需要考虑的额外步骤?

qqrboqgw

qqrboqgw1#

我猜你收到的Base64完全,但你的错误是转换的Base64位图,你没有这样做。
因此,请阅读this答案,并注意删除Base64字符串开头的“data:image/png;base64”。
关于不完整的日志,我应该说,每个日志消息都有4KB的限制,如果你想绕过这个限制,你可以把你的字符串分成一些块,每个块小于4KB,然后打印它们。

相关问题