Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ignorantev1.1 en 12 Mayo 2014, 07:35 am



Título: [Android] Una duda...
Publicado por: ignorantev1.1 en 12 Mayo 2014, 07:35 am
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.


Título: Re: [Android] Una duda...
Publicado por: engel lex en 12 Mayo 2014, 12:39 pm
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


Título: Re: [Android] Una duda...
Publicado por: ignorantev1.1 en 12 Mayo 2014, 15:11 pm
Citar
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

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

Citar
posiblemente 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.


Título: Re: [Android] Una duda...
Publicado por: engel lex en 13 Mayo 2014, 00:36 am
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


Título: Re: [Android] Una duda...
Publicado por: ignorantev1.1 en 13 Mayo 2014, 05:43 am
 :¬¬

(...)

Jajajajajaja, igual, gracias por tus respuestas.

Saludos.