📅  最后修改于: 2023-12-03 15:39:13.868000             🧑  作者: Mango
在Android应用程序中,我们经常需要将Base64字符串转换为位图(Bitmap)对象。这可以通过以下简单的Java代码来完成。
Java类库中有一个名为Base64的类,它提供了将Base64编码字符串转换为原始字节数组和将字节数组编码为Base64字符串的方法。因此,首先需要导入这个类。
import android.util.Base64;
在将Base64字符串转换为位图之前,需要先将其转换为字节数组。可以通过以下代码实现。
byte[] decodedString = Base64.decode(base64String, Base64.DEFAULT);
这里,base64String
是要转换的Base64字符串,decodedString
是转换后的字节数组。
有了字节数组,就可以使用BitmapFactory
类的decodeByteArray()
方法将其转换为位图对象。
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
这里,decodedString
是要转换的字节数组,bitmap
是转换后的位图对象。
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
public class Base64Utils {
public static Bitmap decodeBase64(String base64Str) {
byte[] decodedString = Base64.decode(base64Str, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
}
}
String base64String = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAAA3NCSVQICAjb4U/gAAACGVBMVEUBOjQXOjQXPDIcOjQXPDJcOzUcPDJcPDQXPDIcPDJcOzMcPDJcPDhU5v+OAAAAAXRSTlMAQObYZgAAAKNJREFUKM+d0sEBACAMAw/EF7+vANBvWpxRnqh4jNU1fLoGYt6wwGkVipbPn+A7jcDIwYiCL+MSLdukFkSrSlKXnwsh9r5x7wB3BDGEkgjMCgBvjiJfC+YdAAAAAASUVORK5CYII=";
Bitmap bitmap = Base64Utils.decodeBase64(base64String);
以上代码将Base64字符串转换为位图对象。如果Base64字符串是按照“data:image/png;base64”格式编码的,则需要去掉前缀以获取正确的Base64字符串。