Android Vista vs SurfaceView vs GLSurfaceView para la aplicación de dibujo 2D con Zoomable interfaz de usuario
Planeo escribir una aplicación de dibujo en 2D con una interfaz de usuario con zoom. Con la aplicación el usuario debe ser capaz de transformar (traducir y escalar) trazados dibujados (y, por supuesto, la interfaz de usuario). Supongo que habrá hasta 500 rutas al mismo tiempo. Ahora, me pregunto a qué punto de vista comenzar (Vista, SurfaceView o GLSurfaceView) con el fin de proporcionar un rendimiento aceptable. He leído un par de mensajes [1-6], incluyendo la guía de desarrolladores de android y todavía no estoy 100% seguro de qué punto de vista.
Según la presentación en Google I / O 2009 ( http://youtu.be/U4Bk5rmIpic?t=45m10s ) y el lienzo de experiencias propias (View y SurfaceView) no parece estar funcionando lo suficientemente rápido cuando se manejan más de 100 rutas.
- Android, lienzo: ¿Cómo puedo borrar (eliminar contenidos de) un lienzo (= bitmaps), que viven en una surfaceView?
- Vista previa de Android SurfaceView borrosa
- Uso de surfaceView para capturar un video
- Efecto de zoom en Android SurfaceView
- Cómo adjuntar MediaPlayer con SurfaceView en android?
¿Alguien ve una posibilidad en la aplicación de la aplicación utilizando lienzo o es OpenGL el camino a seguir?
[1] Android: Decidir entre SurfaceView y OpenGL (GLSurfaceView)
[2] ¿ SurfaceView o GLSurfaceview?
[3] ¿ Diferencia entre SurfaceView y View?
[4] http://pierrchen.blogspot.jp/2014/03/anroid-graphics-surfaceview-all-you.html
[5] Diferencia entre SurfaceView y ImageView
[6] Diferencia entre SurfaceView y GLSurfaceView en Android
- Cómo cambiar la cámara Android a la vertical en la vista de superficie?
- Color de fondo de relleno de lienzo de Android (aplicación de lona)
- Obtener información de GPU en Android sin SurfaceView
- No se puede mostrar 2 instancias de mi SurfaceView personalizado
- Android glSurfaceView con superposición con XML / Java
- Uso de la API de la cámara android para mostrar la alimentación de la cámara
- Android: toma fotos sin vista previa
- Evite dibujar más allá del lienzo con SurfaceView
Debido a sus preocupaciones de rendimiento, tendrá que utilizar la renderización de hardware. Las pantallas se vuelven cada vez más densas, por lo que tocar cada píxel del software es cada vez más lento.
Si desea dibujar con un lienzo, debe renderizar a una vista personalizada, con aceleración de hardware habilitada. La representación de lienzo en una Superficie siempre se hace con software.
SurfaceView y GLSurfaceView son casi la misma cosa; GLSurfaceView sólo tiene algunas funciones auxiliares que cuidan de algunas de las tareas domésticas para usted. Puede utilizar GLES para renderizar en SurfaceView y TextureView. Hay múltiples ejemplos de esto en Grafika .
Si desea saber lo que está pasando bajo el capó, consulte el documento System-Level Graphics Architecture .
Es posible que desee considerar el uso de un motor de juego de código abierto 2D. Que se encargará de la configuración de EGL, debe proporcionar código para la fuente de rendición GLES, y así sucesivamente.
- Cómo iniciar un diálogo (como dimiss de alarma / snooze) que se puede hacer clic sin desbloquear la pantalla
- ¿Cómo puedo empaquetar el intérprete entero de python en un APK de Android?