-2

可能重复:
如何将图像动态添加到 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();
            }
        }
    });
4

2 回答 2

2

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

于 2012-12-24T04:17:02.270 回答
0

最好使用延迟加载图像概念来满足您的要求。正如您所说,您正在从网络下载图像,最好使用延迟加载概念,这也可以为您提供更好的性能。您可以在此链接上获得参考。在此链接中,显示在列表视图中加载图像,您的要求是网格视图。使用相同的适配器,一切都会正常工作。

于 2012-12-24T04:12:45.967 回答