2015-07-02 55 views
0

我設置的圖像緩存和我有以下讓我們的ImageView指向新的ImageView對象的Android

ImageView nimage = (ImageView)v.findViewById(R.id.imView1); 

    ImageView value = imageCache.get(ei.imageURL); 

    if (value != null) 
      nimage = value; // this is the code I want to change 
    else { 

      new ImageLoadTask(ei.imageURL, nimage).execute(); 
      imageCache.put(ei.imageURL ,nimage); 

    } 

什麼我更換了與評價值。我不知道爲什麼我不能讓一個imageView等於另一個imageView。

+0

你是混淆圖像(可能位圖)和imageview,這是一個顯示圖像的視圖。 – njzk2

回答

1

你的緩存沒有緩存正確的東西。

您不想緩存ImageView本身 - 視圖的實例綁定到創建它的上下文,因此通常不是一個優秀的緩存對象。

它聽起來像你真正想要緩存的是你從你提供給你的ImageLoadTask的URL下載的圖像(位圖對象)。如果你緩存這個,那麼你可以簡單地調用nimage.setImageBitmap()來使用緩存的位圖,而不是下載它。

+0

太棒了!鍛鍊了魅力。我完全錯了。 –