在服务器返回base64时使用滑动加载图像

时间:2017-08-17 13:48:37

标签: java android android-imageview android-glide

当我用这样的东西加载图像时:

String url = "https://example.com/user/123123/profile_pic" Glide.with(context).load(url).into(imageView);

服务器响应在base64中,滑动默认不处理

我目前的解决方案:

load image with retrofit -> pass image encoded to glide

在这种情况下,我会失去滑行缓存。我想知道是否有办法通过滑行来处理该请求并处理base64响应?

2 个答案:

答案 0 :(得分:1)

您可以将Base64 String转换为byte,然后将该字节加载到glide。

byte[] imageByteArray = Base64.decode(imageBytes, Base64.DEFAULT); 
// here imageBytes is base64String

Glide.with(context)
    .load(imageByteArray)
    .asBitmap()
    .into(imageView);

答案 1 :(得分:0)

对Glide使用自定义ModelLoader

https://bumptech.github.io/glide/tut/custom-modelloader.html

此问题的好手册

Base64DataFetcher类->

public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super ByteBuffer> callback) {  

    String base64Section = getBase64SectionOfModel(); 
    // get this from Retrofit or another
    .........
}