我想知道在从Web加载ListView中的图像时,哪种方法更好,是通过同时运行一些线程批量加载还是一个接一个地通过线程队列加载?
我注意到(但我不知道是否真正实现了这一点),YouTube应用程序通过批处理加载图像,速度很快。甚至不仅加载图像,还从Web请求一些数据。有人有想法吗?
我想知道在从Web加载ListView中的图像时,哪种方法更好,是通过同时运行一些线程批量加载还是一个接一个地通过线程队列加载?
我注意到(但我不知道是否真正实现了这一点),YouTube应用程序通过批处理加载图像,速度很快。甚至不仅加载图像,还从Web请求一些数据。有人有想法吗?
实现此类功能的最佳方法是在列表中使用“懒加载”图像。如果您的列表大小固定,则运行多个线程(每个可见列表项一个),下载图像并刷新列表中的图像。在此期间,在相同位置放置一些虚拟图像。
仅为您的列表提供固定数量的图像组件,最好比任何时候可见图像的总数多几个。每次滚动列表时,检查是否存在与该特定列表项对应的图像。如果是,则显示。如果没有,则显示虚拟图像,运行线程以在后台加载图像,并在下载完成后刷新列表图像。
为了进一步节省内存,您可以为图像组件使用“软引用”。这允许垃圾收集器取走当前未显示在屏幕上的图像。
ImageLoader.start(imageUrl, new ImageLoaderHandler(imageView));
我该如何纠正这个问题?你能帮忙吗? - capecrawler