【问题标题】:Setting up 'Image Caching' in Android在 Android 中设置“图像缓存”
【发布时间】:2015-11-21 08:38:19
【问题描述】:

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

在 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) {
    }
}

【问题讨论】:

  • 不是对您问题的回答,而只是一个建议。使用此square.github.io/picasso 进行图像加载。它会为你做一切。
  • @NomanRafique 我已经尝试过,我遇到了其他一些困难。你知道 Instagram 或 fb 使用什么方法加载图片吗?
  • 嗯,对不起,我不知道。还有另一个非常好的图像加载库,这个。github.com/nostra13/Android-Universal-Image-Loader。试试这个,也许它会解决你的问题。

标签: android image listview caching aquery


【解决方案1】:

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

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

【讨论】:

  • 这不是问题的答案。你应该把它写成评论。
猜你喜欢
  • 2011-10-13
  • 1970-01-01
  • 2021-11-15
  • 2015-05-28
  • 2010-12-29
  • 2014-08-16
  • 1970-01-01
  • 2018-09-11
相关资源
最近更新 更多