如何防止在recycleview中加载每一行(图像)

时间:2015-09-25 09:44:57

标签: android android-fragments scroll android-recyclerview picasso

我必须在我的布局中将图像显示到imageview中以获取recycleview的行。 RecycleView使用ViewHolder模式,因此我的代码在自定义ViewHolder中。

要加载图像,我需要使用在onPostExecute()中返回File的AsynkTask。在这个onPostExecute()中,我用Picasso设置了imageView。

我试图在不使用AsynkTask的情况下获取相同的文件。所以我直接打电话给Picaso.with()....

在这种情况下,循环查看在滚动时滞后很多,但我通知Picasso缓存所有图像。

AynkTask的第一个场景有多个问题。使用100行向下和向上滚动x次使得asynktask的队列更大。 现在,如果我打开一个抽屉的片段,Asynkask的队列继续加载,这个选定的片段使其工作变得如此缓慢。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

  1. 我建议您查看图片管理库(Facebook)Fresco与其他图片加载库相比非常棒且成熟。

    < / LI>
  2. 当视图中的图像离开屏幕时,它会自动回收位图,从而释放内存(滚动平滑)。

  3. Fresco使用3层架构(BITMAP_MEMORY_CACHEENCODED_MEMORY_CACHEDISK_CACHE)处理图像的所有缓存。

  4. 它还可以减少OOM(Out Of Memory)问题。