2012-12-24 51 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();