下载图像后刷新gridview

时间:2012-12-24 03:27:22

标签: android gridview download refresh

  

可能重复:
  How can I dynamically add images to a 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();
            }
        }
    });

2 个答案:

答案 0 :(得分:2)

网格视图有一个函数invalidateViews()尝试使用它。它用于再次使所有视图无效或重新绘制。在下载完成后放置此行,它将再次重绘网格视图。 语法:yourGridView.invalidateViews();

答案 1 :(得分:0)

最好使用延迟加载图像概念来满足您的要求。正如您所说的那样,您正在从网上下载图像,最好是用户使用Lazy Loading概念,这样可以提供更好的性能。您可以在link处获得参考。在此链接中显示了在listview中加载图像,您的要求是gridview。使用相同的适配器,一切都将正常工作。