0

I'm trying to get image bitmap and redraw it in rounded image . but unfortunately i got NPE on imageContainer [the width is actually NULL].

here is what i have tried so far,

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

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

                }
bliveinhack
  • 40
  • 1
  • 8

1 Answers1

2

It is not the width that is null, it is the bitmap.

You probably want to see this: Volley image bitmap is null

onResponse() can and will give you a null bitmap sometimes. In fact, onResponse() is called with a null bitmap once whenever the image is not found in the ImageLoader cache.
This call with a null bitmap happens when the ImageLoader starts to fetch a remote image (not in cache).

This is actually a good thing.

It allows you to present the user with some kind of wait-while-image-is-loading image or progress bar.

onResponse() will be called again later with a non null bitmap if everything goes right.

So really, all you have to do is:

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
}
Community
  • 1
  • 1
jmacedo
  • 773
  • 1
  • 13
  • 24