我试图获取图像位图并将其重绘为圆形图像。但不幸的是我在imageContainer上获得了NPE [宽度实际上是NULL]。
这是我到目前为止所尝试的,
@Override
public void onResponse(ImageContainer image, boolean arg1) {
RoundedDrawable rd=new RoundedDrawable(image.getBitmap());
holder.image.setImageDrawable(rd);
}
答案 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
}