-2

重複の可能性:
GridView に画像を動的に追加するにはどうすればよいですか?

私のアプリケーションでは、ユーザーがサーバーから画像をダウンロードして内部ストレージに保存できるようにしています。ダウンロードが完了した直後に、グリッドビューが更新されず、サーバーからダウンロードした画像が表示されませんでした。アプリケーションを再起動するか、アクティビティが通過しない限りonCreate()。アプリケーションがダウンロードプロセスを完了した直後に、グリッドビューを動的に更新できる方法はありますか? 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

要件を達成するには、画像の遅延読み込みの概念を使用することをお勧めします。Webから画像をダウンロードしていると言っているので、パフォーマンスも向上する遅延読み込みの概念を使用することをお勧めします。このリンクでリファレンスを入手できます。このリンクでは、リストビューで画像をロードすることが示されています。要件はグリッドビューです。同じアダプタを使用すると、すべてが機能します。

于 2012-12-24T04:12:45.967 に答える