0

我使用AQuery通过 URL 设置图像加载,将图像设置为我的 ListView 的 ImageView。但是,每次滚动图像时,图像都会刷新并重新加载。基本上,如果我看到图像一次,然后向下滚动,然后再向上滚动,图像视图会再次被图像重新填充,因此对于体验来说非常不方便。

在 Instagram 或 Facebook 中:加载图像后,它们是完整的,如果我滚动相同的图像,ImageView 不会重新加载图像。我相信它已正确缓存。如何为 ListView 的 ImageView 设置缓存?

这是我的适配器代码:

AQuery aq;

public FeedAdapter(Activity a, ArrayList<ActivityTable> actList) {

    activity = a;
    inflater = (LayoutInflater) activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.actList = actList;
}

public View getView(int position, View convertView, ViewGroup parent) {

    View vi = convertView;
    final ActivityTable act = actList.get(position);
    aq = new AQuery(activity);

    holder.media = (ImageView) vi.findViewById(R.id.postphoto);

    try {
        aq.id(holder.media)
                .progress(R.id.progress)
                .image(act.getMediaURL(), false, true, 800,
                        R.mipmap.image_placeholder, preset,
                        AQuery.FADE_IN_FILE);
    } catch (Exception ex) {
    }
}
4

1 回答 1

1

我已经用 aquery 尝试过这个东西,您使用的 Aquery 库可以维护缓存并根据我们的需要进行调整,但是您必须为不同的图像使用不同的 url,以便可以更新最后一张图像,就像您告诉 instagram 一样。据我所知:- 这是因为 android 查询检查图像的 url,如果不同,则刷新新图像,否则从缓存中获取位图。

为图书馆多做一些工作,它有很多选择。谢谢

于 2015-08-27T05:53:54.617 回答