我有一个图像内容byte[]格式。但是当我通过Glide加载它们时,会显示破碎的图像。我所做的如下所示。
Glide.with(context)
.load(imageByteArray)
.asBitmap()
.placeholder(R.drawable.ic_broken)
.into(rowImageView);
imageByteArray成功地转换为位图而没有使用滑动。因此图像字节数组没有问题。
请告诉我我错过了什么?
我还使用了Glide库com.github.bumptech. glide:3.6.1和Android支持库com.android.support:support-v13:23.0.1
已编辑
好吧,我就是这么做的.
String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..."
上面定义的字符串是我从Web API接收的实际图像的字节。
我把这个字符串转换成这样的字节数组
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
然后,我将结果字节数组“imageByteArray”应用于上面定义的Glide代码。
6条答案
按热度按时间2nbm6dog1#
假设base64字符串为
您应该通过将
imageBytes
String转换为字节数组然后将此
imageByteArray
传递给Glide。vsmadaxz2#
可以使用以下命令将
Base64
String转换为图像ycggw6v23#
Kotlin道:
0lvr5msh4#
如果在
.asBitmap()
上出现错误,请按如下方式使用n7taea2i5#
我做的有点不同
字节已准备好写入文件。
n1bvdmb66#
Base 64 JPEG图像的示例
使用版本5以下的Glide测试代码,但在最新版本中也有用