0

android.widget.Gallery から派生したクラスと、createBitmap がオーバーライドされた BaseAdapter から派生したクラスがあります。ギャラリーには、インターネットからダウンロードされた画像がたくさん表示されますが、ユーザーはそれらのすべてを見ないことを選択できるため、必要な場合 (つまり、ギャラリーに表示される場合) にのみ各画像をダウンロードします。そのため、最初の呼び出しで createBitmap はデフォルトの「画像のダウンロード」アイコンを返し、適切な画像のダウンロードがスケジュールされます。画像の準備ができると、アクティビティに通知が届きます。しかし、現在表示されているギャラリー オブジェクトを強制的に更新する方法がわかりません (ただし、ビューからスクロールして戻ってダウンロードした画像を表示するだけで十分です)。notifyDataSetChanged() は喜びを与えません...

何か案は?

4

1 に答える 1

1

おそらく、アクティビティが通知されると、アイテムの位置または何らかの識別子が認識されます。ビューを取得してビットマップを設定できるはずです(これにより、特定のビューが更新されます。

特定の識別子のビューを識別する方法は、setTag 関数を使用して識別子をビューに添付することです。次に、Gallery の子をループしてビューを見つけることができます。

for(int i=0 ; i<mParent.getChildCount();i++){
  View view = mParent.getChildAt(i);
  if(view!=null && view.getTag().equals(yourIdentifier)){
    return view;
  }
}

また、AdapterViews は限られた数のビューのみを保持し、それらをリサイクルするため、ループは高速である必要があります。

于 2012-04-18T11:16:56.910 に答える