He revisado algunas publicaciones sobre la carga lenta pero creo que mi problema es un poco diferente.Android: carga lenta en la Galería
Tengo una galería (mi clase amplía la Galería) que muestra 20 imágenes de gran tamaño (400-500K cada una). No puedo cargarlos todos en la galería ya que recibo una excepción de OutOfMemory.
Así que, creé una matriz de 20 Drawables e inicialmente llené los primeros 9 elementos (las imágenes provienen de la Web) y configuré el resto como nulo. Mi intención era esta: en una aventura a la derecha, busca el elemento no. 10 y establecido en el elemento nulo no. 0. En otro lanzamiento al elemento de búsqueda correcto no. 11 y establecer en el elemento nulo no. 1 a nulo. La misma lógica en una aventura a la izquierda.
El problema es que puedo lanzar mucho más rápido de lo que se recogen los elementos. Mi galería tiene un BaseAdapter y su getView() es como la siguiente:
public View getView(int position, View convertView, ViewGroup parent){ ImageView imageView = new ImageView(); imageView.setDrawable(imageArray[position]; .... .... return imageView; }
¿Cómo le digo getView() - si imageArray [posición] sigue siendo nula, muestran una "cargando ..." de diálogo y Una vez que está configurado, ¿te repites con la misma posición?
No quiero ver el imageView vacío y luego configurarlo sobre la marcha. No quiero ver el imageView hasta que esté configurado.
Gracias.
Hay una gran publicación en el blog de Android (así como algún código de ejemplo) que responde a su pregunta: http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html – Ally