2012-12-24 54 views
-2

可能重複:
How can I dynamically add images to a GridView?刷新GridView控件下載後像

在我的應用程序,它允許用戶從服務器上下載圖像,並將其存儲到內部存儲。下載完成後,gridview不會更新並顯示從服務器下載的圖像。除非我重新啓動應用程序或活動通過onCreate()。無論如何,我可以在應用程序完成下載過程後動態更新gridview?我試圖用invalidateView()刷新視圖;也不起作用。任何意見將不勝感激。

的OnCreate()

final GridView imagegrid = (GridView) findViewById(R.id.WebImageGrid); 
    imageAdapter = new ImageAdapter(); 
    imagegrid.setAdapter(imageAdapter); 



    Button loadContent = (Button) findViewById(R.id.load_btn); 
    loadContent.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      if(load_images<count){ 
       load_images++; 
       imageAdapter.LoadImage(); 
       imagegrid.invalidateViews(); 
       imagegrid.setAdapter(imageAdapter); 
      } 
      else{ 
       Toast.makeText(getApplicationContext(), "Successfully load all the content. Subscribe to get more content.", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
+1

http://stackoverflow.com/questions/8053919/how-can-i-dynamically-add-images-to-a-gridview dup – wtsang02

回答

0

更好地使用延遲加載圖片的理念,實現您的要求。正如你所說,你正在從網上下載圖片,最好是用戶懶惰加載的概念,這也給你更好的性能。您可以在此link處獲得參考。在這個鏈接中,它顯示了在listview中加載圖像,並且您的要求是gridview。使用相同的適配器,一切都將工作。

2

網格視圖有一個函數invalidateViews()嘗試使用它。它用於使所有視圖無效或重新繪製。下載完成後放置此行,它將重新繪製網格視圖。 語法:yourGridView.invalidateViews();