[Android] Una duda...

Iniciado por ignorantev1.1, 12 Mayo 2014, 07:35 AM

0 Miembros y 1 Visitante están viendo este tema.

ignorantev1.1

Hola, jóvenes conocedores del androide. Me preguntaba:

Desarrollando una aplicación (y como no hace mucho comencé con el androide) empecé a hacer algunas animaciones sobre una "View" (Canvas, blablablá),  obteniendo un muy aceptable número de FPS, pero con el problema de que hay un parpadeo molesto en ciertas zonas en el transcurso de la animación.
Así que decidí buscar por ahí alguna solución, y me encontré con la "solución" universal para problemas con las "View": Usar "SurfaceView". Decidí migrar el proyecto de "View" a "SurfaceView", hubo algunas quebradas de cabeza en el transcurso pero al fin lo conseguí. Cuando logro echar a andar la aplicación desaparecen los parpadeos molestos que antes tenía con la simple "View", pero ¡oh, sorpresa!, también desaparece el muy aceptable número de FPS que tenía.

En resume: Con "View" buenos FPS, pero parpadeos. Y con "Surfaceview" sin parpadeos pero con lamentables FPS.
Entonces si lo único que cambió fue View a SurfaceView, toda la cuestión gráfica y operativa es exactamente la misma, ¿por qué el rendimiento tan pobre de una "SurfaceView"?

Saludos.

engel lex

los parpadeos sera poaiblememte por la sincronizacion (vsync) es decir, tu animación se actualiza en momentos diferentes que la pantalla, dando un feo reaultado, posiblemente en surface view estés haciendo algo mal y sobrecargando el proceso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ignorantev1.1

Citarlos parpadeos sera poaiblememte por la sincronizacion (vsync) es decir, tu animación se actualiza en momentos diferentes que la pantalla, dando un feo reaultado

Mmmm, a ver, a ver, explícate... ¿cómo se soluciona eso?

Citarposiblemente en surface view estés haciendo algo mal y sobrecargando el proceso

Pues también eso que hago mal con "SurfaceView", igual lo hago con "View", porque lo único que hice fue:

* Pasar de heredar "View" a "Surfaceview".
* implementar "Surfaceholder.Callback".
* Colocar el hilo en otra clase y desde ahí graficar.

Todos los tutoriales que me leí (sobre "Surfaceview") así lo hacían.

Gracias por tu respuesta. Saludos.

engel lex

lo siento xD doy mis opiniones con respecto a haber programado en open gl, no se cono es.en surface, busca sobre eso :p a ver si es similar, tambien puedes buscar la frecuencia de la pantalla y usar esa info para (con esperas) tener el fp correcto
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ignorantev1.1

 :¬¬

(...)

Jajajajajaja, igual, gracias por tus respuestas.

Saludos.