我在我的应用程序中使用picasso在recyclerView中加载图像。图像文件都是本地文件。问题是listview滚动不顺畅,它是紧张不安。我搜索过它,我看到很多人都遇到了类似的问题,但是没有明确的解决方案真的很奇怪。
Horrible performance when loading local files
Recyclerview painfully slow to load cached images form Picasso
从上面的链接看,毕加索在从网络上获取图像时效果很好,但对于本地存储的图像,它并没有那么好。
在这种情况下,甚至建议使用Picasso吗?我应该拥有自己的LruCache实现并删除Picasso吗?我没有Picasso使用LruCache自己进行缓存。虽然在这种情况下滚动是完美的,但毕加索更加干净和紧凑,所以我认为从长远来看这可能是更好的解决方案。
答案 0 :(得分:0)
这种行为可能有很多原因。一个问题可能是您的行布局可能非常深而不是宽。另一个问题可能是图像的大小,如果图像尺寸很大,很可能所有图像都不适合毕加索的缓存。
如果问题是由于图片大小造成的,您可以通过Facebook尝试Fresco。它非常适合加载大图像。它使用原生和ashmem缓存,因此与Picasso或Glide等其他类似的库相比,它可以在缓存中容纳大量图像。您可以做的另一件事是,android:largeHeap="true"
在AndroidManifest.xml
标记内Application
。{/ p>