2010-07-30 21 views
7

He estado tratando de hacer una aplicación desplazable/con zoom y todo ha ido bien, excepto para dibujar mapas de bits. Es una imagen muy grande (6656 por 4096) que he dividido en mosaicos. Hay una matriz de rectángulo que atrae a los mapas de bits, y detecta qué rectángulo está en la esquina superior izquierda para que pueda dibujar los mapas de bits que cubrirán la pantalla visible del usuario. Mi problema es que todo esto se rezaga cuando la aplicación tiene que cargar los mapas de bits en la memoria; Una vez que se cargan, no es un problema. Comencé con 512 por 512 fichas, luego bajé a 128 por 128. Aunque me ayudó, todavía hay un retraso notable. He estado buscando en SurfaceView y quería sus opiniones si debería seguir con View, o usar SurfaceView para resolver mi retraso.android view o surfaceView, ¿qué debo usar?

Respuesta

9

Si obtiene su propio SurfaceView tiene varias ventajas.

Principalmente porque puede tener toda la lógica de dibujo en un hilo separado. Esto significa que la interfaz de usuario no lo esperará (supongo que el retraso se debe a que se está bloqueando el hilo de la interfaz de usuario).

Las SurfaceView también son más rápidas por naturaleza.

También encontré this descripción en developer.android.com para ser una buena referencia para elegir el método de dibujo.

+1

SurfaceView resultó ser mucho más rápido y más adecuado, gracias. – jfisk