java - 如何使用 Glide 通过字节数组加载图像?

标签 java android android-glide

我有一个图像内容字节 [] 形式。但是当我通过 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 代码。

最佳答案

假设你的 base64 字符串是

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..."

您应该通过

imageBytes 字符串转换为字节数组
byte[] imageByteArray = Base64.decode(imageBytes, Base64.DEFAULT);

然后将此 imageByteArray 传递给 Glide。

Glide.with(context)
    .load(imageByteArray)
    .asBitmap()
    .placeholder(R.drawable.ic_broken)
    .into(rowImageView);

关于java - 如何使用 Glide 通过字节数组加载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34588905/

相关文章:

java - 如何打印数组中的某个数字?

java - JToolBar 项目顺序

android - 按下音量调低会延迟调用 onKeyDown(而音量调高会及时调用)

android - Glide 正在加载半张图像

java - Google Drive SDK - 客户 secret - 它有多 secret ?

java - 在多个显示器上绘制叠加

java - 无法使用 android 支持库 - NoClassDefFoundError : android. support.v7.appcompat.R$attr

android - 关闭没有动画的抽屉导航

android - 如何检查 ImageView 是否在 android studio 中完成加载和图像

android - 删除未反射(reflect)在图库中的图像