当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何使用Glide通过字节数组加载图像?》经验,为你挑选了3个好方法。

我有一个图像内容byte []形式.但是当我通过Glide加载它们时,会显示破碎的图像.我正在做的事情如下所示.

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

imageByteArray成功转换为位图而不使用滑动.所以图像字节数组没有错.

请指导我,我错过了什么?

我也在使用Glide库com.github.bumptech.glide:glide:3.6.1和Android支持库com.android.support:support-v13:23.0.1

编辑

好的,这就是我正在做的事情.

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..."

上面定义的这个字符串是我从web API收到的实际图像的字节.

我正在将此String转换为像这样的字节数组

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代码.



1> Adnan Amjad..:

让我们说你的base64字符串是

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..."

您应该将imageBytesString 转换为字节数组

byte[] imageByteArray = Base64.decode(imageBytes, Base64.DEFAULT);

之后将其传递imageByteArray给Glide.

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


@AmitVerma您正在使用哪个Glide版本?如果低于5,则在.with()之后紧接使用.asBitmap()

2> Anudeep Sama..:

您可以Base64使用以下方法将String 转换为图像

Glide.with(context)
    .load(Base64.decode(base64ImageString, Base64.DEFAULT))
    .asBitmap()
    .placeholder(R.drawable.ic_broken)
    .into(rowImageView);


与接受的答案相比,你的答案有什么不同?!
没什么,他只是少变一个 -

3> Zohab Ali..:

如果您遇到错误,请.asBitmap()像这样使用

             Glide.with(this)
                .asBitmap()
                .load(imageAsBytes)
                .into(image)

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有