0

我有一个从 android.widget.Gallery 派生的类和一个从 BaseAdapter 派生的类,它覆盖了 createBitmap。画廊将显示从互联网上下载的一堆图像,但由于用户可能选择不观看所有图像,因此我仅在必要时下载每张图像(即当它被画廊显示时)。因此,在第一次调用 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 回答