¿Cuál es la mejor carga de imágenes para ListView?

Me pregunto si uno de los dos es mejor en la carga de imágenes en un listview desde la web, es por lotes a través de un número de hilos que se ejecutan simultáneamente o uno por uno a través de fila de hilo?

He notado (pero no sé si eso es realmente la aplicación) de la aplicación de youtube que las imágenes se cargan por lotes y es un poco rápido. Incluso para no sólo cargar imágenes sino también solicitar algunos datos de la web también. ¿Alguien tiene alguna idea?

"Mejor" de qué manera? ¿En cuanto al rendimiento? ¿Apto para los desarrolladores? ¿Usabilidad sabia?

Un par de cosas fundamentales a considerar:

  1. Crear hilos es costoso. Es lento y cada hilo consume recursos del sistema (por supuesto). Al crear un solo subproceso para cada descarga, utilice un grupo de subprocesos con encabezado administrado.
  2. No cargue imágenes si no son visibles para el usuario. Lo que debe hacer es getView() de su ListAdapter , compruebe si la imagen ya se ha cargado y, si no, vuelva a usar un subproceso del grupo de subprocesos para realizar el trabajo.
  3. Tenga cuidado con AsyncTask. Por lo que sé, AsyncTask gestiona un conjunto fijo de hilos de aplicaciones (creo que está limitado a 5 subprocesos), por lo que si todos estos subprocesos están ocupados cargando imágenes, cualquier otra tarea que realice a través de esa clase bloqueará.
  4. No vuelva a inventar la rueda. ¿El ImageLoader de Droid-Fu soluciona tu problema? También implementa una caché, por lo que las imágenes no se descargan dos veces.

La mejor manera de tener este tipo de funcionalidad es tener la 'carga perezosa' de las imágenes en la lista. Si su lista es de tamaño fijo, ejecute varios subprocesos (uno para cada elemento de lista visible), descargue las imágenes y actualice las imágenes de la lista. En ese tiempo medio tienen alguna imagen ficticia colocada en la misma localización.

Tenga solamente un número fijo de componentes de la imagen para usted lista, preferiblemente algunos más entonces las imágenes visibles totales en cualquier punto. Cada vez que se desplaza la lista, compruebe si existe o no la imagen correspondiente a ese elemento de lista particular. En caso afirmativo, muestre. Si no es así, muestre la imagen ficticia, ejecute el hilo para cargar la imagen en segundo plano y actualice la imagen de la lista una vez que se complete la descarga.

Para guardar más memoria, puede utilizar 'SoftReferences' para los componentes de la imagen. Esto permite al recolector de basura quitar las imágenes que no se muestran en la pantalla en este momento.

Intenté crear un ejemplo simple de la lista perezosa que se puede utilizar como referencia, aquí es Carga perezosa de imágenes en ListView

https://picard.hgo.se/~jakeri03/blog/?p=39

Esto podría ser lo que está buscando, utiliza un threadpool fijsized y una caché suave para descargar imágenes.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.