【发布时间】: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