2011-12-22 87 views
1

我使用Fedor的延遲加載畫廊顯示與URL的幾張圖片。 代碼費多爾的延遲加載問題

class BitmapDisplayer implements Runnable { 

    Bitmap bitmap; 
    PhotoToLoad photoToLoad; 

    public BitmapDisplayer(Bitmap b, PhotoToLoad p) { 
     bitmap = b; 
     photoToLoad = p; 
    } 

    public void run() { 
     if (imageViewReused(photoToLoad)) { 
      System.out.println("imageViewReused"); 
      return; 
     } 
     // exist in memory cache or SD cache 
     if (bitmap != null) { 
      photoToLoad.imageView.setImageBitmap(bitmap); 
     } 
     // cache not exist and loading 
     else { 
      photoToLoad.imageView.setImageResource(R.drawable.load); 
      photoToLoad.imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     } 
    } 
} 

它檢查緩存天氣是否存在。 如果不是,則表示加載未完成並顯示R.drawable.load。 但是,當圖片加載完成後,imageView不更新圖像,並仍然顯示drawable。 如何在加載完成時修改以進行更新?

回答

2

如果您在圖庫中使用BaseAdapter或其子,則可能需要在設置位圖後調用notifyDataSetChanged()