¿Cómo evitar una pausa de pantalla en vivo androide mientras que la actividad configuración está abierto cuando se utiliza GLSurfaceView

StackOverflow https://stackoverflow.com/questions/4469267

Pregunta

Estoy escribiendo un fondo de pantalla animado en 3D para Android usando la envoltura famosa GLSurfaceView (http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers)

Cuando abro la pantalla de preferencias para cambiar la configuración del fondo de pantalla, los ajustes se muestran como transparente sobre mi fondo de pantalla de vista previa. Esto es bueno porque me permite una vista previa de los cambios de configuración que hago. Esto funciona muy bien, excepto por un problema: El fondo de pantalla se pone en pausa mientras los ajustes están encima de él

¿Cómo puedo evitar que mi fondo de pantalla pausa?

¿Fue útil?

Solución

Se me ocurrió una solución que podría ser útil, dependiendo de cómo funciona su papel pintado ...

En mi actividad de configuración, cada vez que el usuario realiza un cambio (por ejemplo mueve un deslizador, cheques de una casilla de verificación), que transmitió una Intent con la información de configuración correspondiente.

En el método onCreate del fondo de pantalla en vivo, que dinámicamente registrar un BroadcastReceiver para recibir estos eventos ajustes. Me anular el registro de este receptor en onDestroy.

Cuando se recibe una emisión configuración, que hacen que el fondo de pantalla dibujar un solo cuadro con la nueva configuración. A medida que la actividad de configuración es transparente, esto da inmediatamente al usuario una idea de lo que el fondo de pantalla se verá como con los ajustes seleccionados.

Del mismo modo, el uso de este enfoque, se podría programar el fondo de pantalla para animar durante unos segundos después de un cambio de configuración -. O lo que sea apropiado para su aplicación

Otros consejos

Me pareció que era un poco molesto también. Aparté el tema por completo, simplemente llamando a finish() en mi actividad de configuración cada vez que se realiza un cambio. Esto permite, por un instante, lleno vista previa de la imagen de fondo para el usuario. Sólo se necesita un clic para volver a la configuración de hacer otro cambio y lo convierte en un lugar agradable experiencia de usuario.

 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
            String key) {
       finish();
 }

He utilizado este en mi línea de fondos de pantalla. Aquí es un ejemplo:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top