如何在kotlin android中将base64字符串转换为图像

Mug*_*Dar 2 base64 android kotlin android-studio

我有一个代表位图图像的 Base64 字符串。

我需要再次将该字符串转换为位图图像,以便在我的 Android 应用程序中的 ImageView 上使用它

怎么做?

Pra*_*ble 7

您可以使用此代码进行解码:-

val imageBytes = Base64.decode(base64String, Base64.DEFAULT)
val decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length)
imageView.setImageBitmap(decodedImage)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!`导入 android.util.Base64`。还有“imageBytes.size”而不是“imageBytes.length”。 (2认同)

Sun*_*nny 5

你可以使用android方法

imageString是您的图像的 base64 字符串。

这是java代码:

byte[] decodedByte = Base64.decode(imageString, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedString.length); 
Run Code Online (Sandbox Code Playgroud)

这是科特林代码:

val decodedByte = Base64.decode(imageString, Base64.DEFAULT)
val bitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedString.length) 
Run Code Online (Sandbox Code Playgroud)

之后,您可以将其设置到图像视图中

yourimage.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)

  • 这段 kotlin 代码对我不起作用,直到我将 BitmapFactory.decodeByteArray(decodedByte, 0,decodedString.length) 更改为 BitmapFactory.decodeByteArray(decodedByte, 0,decodedString.size)。解码的字符串没有“长度”方法,只有“大小”方法。更改后,一切都像魅力一样,所以感谢您的代码。 (3认同)