2011-07-29 11 views
8

Tengo un GridView que muestra imágenes (7 columnas de imágenes que son 166dp x 249dp) que son todas del mismo tamaño (hay más de 150 imágenes), y estoy usando el mecanismo de reciclaje de vista a través del patrón de vista de un adaptador. Mis puntos de vista son todos simplemente ImageViews. No hay muchas cosas que deban ralentizar el desplazamiento en este widget (hay 21 imágenes en pantalla a la vez), pero la cosa simplemente se desplaza de manera muy discontinua. ¿Qué puedo hacer para acelerarlo?Android: ¿Cómo puedo acelerar el desplazamiento de GridView?

+0

¿Está esto en el emulador o en un dispositivo? – James

+0

En el dispositivo. Motorolla Xoom, Android 3.1 –

+0

¿De dónde viene el contenido de ImageView? La decodificación de un jpeg o png en un objeto Bitmap puede tomar suficiente tiempo para ralentizarlo. Es posible que desee almacenar en la memoria los mapas de bits de la imagen para evitar la descodificación una y otra vez. – Petrus

Respuesta

8

Hablé con algunos de los muchachos en Google durante el último Google Developer Lab y me dijeron que GridView no se mantiene mucho, y que debería usar ListView, estableciendo las filas en el código para hacer una grilla. Esto es lo que hice y ahora es muy rápido.

+1

Hola, lo siento molestarte :) Tengo exactamente el mismo problema que tú, y dado que escribiste que se podía usar ListView en su lugar, traté de buscar algunos ejemplos de código en la red. Sin embargo, no puedo encontrar ninguno, así que me pregunto si podría mostrarnos cómo resolvió el problema. – eightx2

+2

Lamentablemente, la empresa para la que trabajo posee los derechos de autor de ese código, por lo que no puedo compartirlo con usted. Sin embargo, puedo decirte lo que tienes que hacer. Simplemente use un ListView en lugar de su GridView. Escriba un Adaptador (extienda BaseAdapter) y en el método getView agregue programáticamente cuantas Vistas (estas sean sus columnas) que necesite para la fila (posición) particular que está creando. Asegúrese de implementar el patrón ViewHolder o tendrá problemas de memoria y rendimiento. –

Cuestiones relacionadas