我已经查看了一些关于延迟加载的帖子,但我相信我的问题有点不同。
我有一个画廊(我的课程扩展了画廊),它显示了 20 张相当大的图像(每张 400-500K)。由于出现 OutOfMemory 异常,我无法将它们全部加载到库中。
因此,我创建了一个包含 20 个 Drawable 的数组,并最初填充了前 9 个元素(图像来自 Web),并将其余所有元素设置为 null。我的意图是这样的:向右一晃,获取元素号。10 并设置为空元素编号。0. 在另一次向右获取元素编号。11 并设置为空元素编号。1 为空。左转也是同样的逻辑。
问题是我可以比获取元素快得多。我的画廊有一个 BaseAdapter,它的 getView() 看起来像这样:
public View getView(int position, View convertView, ViewGroup parent){ ImageView imageView = new ImageView(); imageView.setDrawable(imageArray[位置]; …… …… 返回图像视图; }
我如何告诉 getView() - 如果 imageArray[position] 仍然为空,则显示“正在加载...”对话框,一旦设置好,就在相同的位置重复自己?
我不想看到 imageView 为空,然后即时设置。我希望在设置之前根本看不到 imageView。
谢谢。