我有一个图像内容的byte[]表单。但是当我通过Glide加载它们时,会显示损坏的图像。我所做的如下所示。
Glide.with(context)
.load(imageByteArray)
.asBitmap()
.placeholder(R.drawable.ic_broken)
.into(rowImageView);
imageByteArray成功地转换为位图,而不使用Glide。因此,图像字节数组没有问题。
请指导我错过了什么?
另外,我正在使用Glide库com.github.bumptech.glide: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代码中。