android - 哪个更好地为 ListView 加载图像?

标签 android

我想知道这两者中哪一个更适合从 Web 加载 ListView 中的图像,是通过同时运行的一些线程批量加载还是通过线程队列逐个加载图像?

我从 youtube 应用程序注意到(但我不知道这是否真的实现)图像是批量加载的,而且速度有点快。甚至不仅要加载图像,还要从网络上请求一些数据。有人有想法吗?

最佳答案

以何种方式“更好”?性能明智?对开发者友好?可用性明智?

需要考虑的几个基本事项:

  1. 创建线程的成本很高。它很慢,每个线程都消耗系统资源(当然)。为每次下载创建单个线程时,使用托管的上限线程池。
  2. 不要加载用户看不到的图片。你应该做的是在你的 ListAdaptergetView() 中,检查图像是否已经加载,如果没有,重新使用线程池中的线程来做工作。
  3. 小心使用 AsyncTask。据我所知,AsyncTask 管理一个固定的、应用程序范围的线程池(我认为它的上限为 5 个线程),因此如果所有这些线程都忙于加载图像,您通过该类执行的任何其他任务都将被阻止。
  4. 不要重新发明轮子。 ImageLoaderDroid-Fu解决你的问题?它还实现了缓存,因此图像不会被下载两次。

关于android - 哪个更好地为 ListView 加载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2092190/

相关文章:

android - 未知动画名称 : decelerateInterpolator

Android Play 商店错误 -505

Android 5.0 预览表面和捕获的静止图像上的错误裁剪区域

java - 使用Jsoup从html源代码中获取数据

java - 由于 VideoView 错误,无法播放此视频

android - TYPE_ROTATION_VECTOR 的传感器值在不同设备上不相同

android - 在 Android 开发中如何从一个类调用 Java 方法到另一个类?

java - GridView 项目的

android - 在 Firebase Cloud Messaging 上通过 XMPP 传送上游消息的误解

android - 检查 Android 处理程序是否有回调