我有一个将“bitmap”转换为“Base64”字符串
的函数public String getBitmapToBase64String(Bitmap bitmap) {
if (bitmap != null) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
if (encoded.trim().length() > 0 && encoded != null) {
return encoded;
} else {
return "";
}
} else {
return null;
}
}
但我怀疑它给了我一个未完成的图像字符串。所以我给图像的字符串变量一个静态值。之后,我运行应用程序,然后我收到此错误。
Error:(652, 21) error: constant string too long
请帮帮我 提前致谢
答案 0 :(得分:0)
这是因为返回的字符串非常长并且不会存储在字符串变量中。相反,使用它来减少返回到对象的字符串
public String getBitmapToBase64String(Bitmap bitmap) {
if (bitmap != null) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
if (encoded.trim().length() > 0 && encoded != null) {
String CONSTANT = org.apache.commons.lang.StringUtils.join( new String[] {encoded} );
return CONSTANT;
} else {
return "";
}
} else {
return null;
}
}