我尝试使用 Coil 在 Android 应用程序中显示编码为 Base64 字符串的 PNG 图像,但没有显示任何内容。我的 Base64 字符串开头如下:
data:image/png;base64,iVBORw0KGgo...
我正在尝试使用线圈进行解码和显示。
这是代码片段:
val base64ImageString = "data:image/png;base64,iVBORw0KGgo..." // Your Base64 string here
val imageLoader = ImageLoader(context)
val request = ImageRequest.Builder(context)
.data(base64ImageString)
.target(imageView)
.build()
imageLoader.enqueue(request)
我发现问题是由于在解码 Base64 字符串之前没有正确剥离 data:image/png;base64, 前缀。这是正确的方法:
// Kotlin code snippet
val base64ImageStringWithPrefix = "data:image/png;base64,iVBORw0KGgo..." // Full Base64 string
val base64ImageString = base64ImageStringWithPrefix.substringAfter("base64,")
val imageByteArray = Base64.decode(base64ImageString, Base64.DEFAULT)
// Use Coil to load the byte array into the ImageView
val imageLoader = ImageLoader(context)
val request = ImageRequest.Builder(context)
.data(imageByteArray)
.target(imageView)
.listener(
onError = { _, throwable ->
// Log or handle the error
throwable.printStackTrace()
}
)
.build()
imageLoader.enqueue(request)