2015-02-12 30 views
0

我試圖獲取圖像位圖並在圓形圖像中重繪它。但不幸的是我在imageContainer上得到了NPE [寬度實際上是NULL]。Volly imageLoader onResponse imageContainer width null

這裏是我到目前爲止已經試過,

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

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

       } 
+0

是它的ImageContainer是空或位圖? – jmacedo 2015-02-17 02:25:55

+0

位圖爲空!在bitmap.getWidth()上獲得NPE其實。 – bliveinhack 2015-02-17 13:41:52

回答

2

這並不是說是空的寬度,它是位圖。

你可能想看到這一點: 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 
}