我的申请有一个ListView
。
ListView
有很多图像。
1)将这些图片预加载到ListView
中的最佳/最有效方法是什么? (我在bindView()
的{{1}}中设置图像。我应该将它们存储为资产,原始文件还是可绘制目录?
如果我将图片存储在SimpleCursorAdapter
中,我基本上有他们的名字,但不是drawable
资源。
2)int
是否可以到达这里?
如果有一组新图像可用,应用程序将查询服务器。如果它们可用,它会延迟下载并将它们存储到缓存中。现在旧图像没用了。
3)有没有办法摆脱它们?
答案 0 :(得分:1)
我建议您尝试Picasso。它负责处理缓存和图像加载。
在Adapter类的getView方法中,您只需要一行代码。
Picasso.with(context).load(image_url).into(holder.imageView);
答案 1 :(得分:0)
将这些图像预加载到我的图片中的最佳/最有效方法是什么? 的ListView?
你已经在使用LazyList了,所以这就是perfetct
Should I store them as assets, raw files or in the drawable directory?
这取决于您的选择
有没有办法摆脱它们?
是的,转到lazylist中的FileCache类,那里会有一个变量cacheDir
它实际上告诉你存储旧/缓存图像的目录,因此你可以从那里执行你想要的任何东西
编辑:这是lazylist的链接 https://github.com/thest1/LazyList
它做的是,它在加载到iamgeview之前对图像进行下采样,因此节省了大量内存,我猜它使用了视图模式,因此没有什么可担心内存泄漏也会异步加载图像,因此UI不会滞后正在加载图像的时间