Volly imageLoader onResponse imageContainer width null

时间:2015-02-12 05:21:03

标签: android imageview android-volley image-loading

我试图获取图像位图并将其重绘为圆形图像。但不幸的是我在imageContainer上获得了NPE [宽度实际上是NULL]。

这是我到目前为止所尝试的,

@Override
                public void onResponse(ImageContainer image, boolean arg1) {

                    RoundedDrawable rd=new RoundedDrawable(image.getBitmap());
                    holder.image.setImageDrawable(rd);

                }

1 个答案:

答案 0 :(得分:2)

宽度不是null,而是位图。

你可能想看到这个: Volley image bitmap is null

onResponse()有时会给你一个空位图。事实上,只要在ImageLoader缓存中找不到图像,就会使用空位图调用onResponse()
当ImageLoader开始获取远程图像(而不是缓存)时,会发生带有空位图的调用。

这实际上是一件好事。

它允许您向用户呈现某种等待图像正在加载的图像或进度条。

如果一切正常,

onResponse()将在稍后再次使用非空位图进行调用。

所以,你需要做的就是:

public void onResponse(ImageContainer image, boolean arg1) {
    if(image.getBitmap() != null){
       RoundedDrawable rd = new RoundedDrawable(image.getBitmap());
       holder.image.setImageDrawable(rd);
    }
    else
       //set a waiting image or progress bar
}