Tengo un video que se reproduce en modo vertical. Al final del video, necesito mostrar algunas vistas sobre él. Esto funciona bien hasta ahora.Android: las vistas superpuestas en el último fotograma de un video a pantalla completa no se vuelven a dibujar correctamente al encender y apagar la pantalla
Sin embargo, tengo un problema cuando las vistas que están sobre el último fotograma de un video no se vuelven a dibujar correctamente al volver a la actividad después de apagar la pantalla, volver a encenderla y luego desbloquear la pantalla.
Lo que estoy observando es que cuando la pantalla se vuelve a encender y me desbloqueo. Mi video y las imágenes se renderizan primero fuera del modo de pantalla completa (con la barra de estado todavía visible), luego la pantalla pasará al modo de pantalla completa, cambiando todas las vistas hacia arriba y causando artefactos.
Parece que las vistas se están desplazando fuera de sus límites de vista por la transición a pantalla completa después de que se procesen.
Estoy realmente perplejo sobre cómo evitar que esto suceda.
Here is the sandbox project on github para evitar que esto se convierta en una publicación llena de código.
La configuración básica para el proyecto es la siguiente:
actividad fragmento tiene una vista de vídeo y una vista botón en su diseño. Luego agrega un fragmento en un contenedor contentView. ContentView se atenúa en 1 segundo antes del final de la reproducción de video.
Todo funciona sin problemas y el problema es volver a la aplicación después de encender y apagar la pantalla.
Además, a veces el video simplemente se desconecta por completo, dejando las vistas sobre un fondo negro.
Gracias de antemano por cualquier ayuda que pueda proporcionar.
Aquí está la artifacting que sucede cuando se enciende la pantalla apagada, de nuevo, y desbloquear. Tenga en cuenta que tuve que tomar una foto. En DDMS, la herramienta de captura de pantalla ve las imágenes correctamente.
Gracias por la sugerencia de Colin. Voy a intentarlo. –
np! Espero que funcione :) –
Gracias Colin. Esto definitivamente ayudó, todavía no he resuelto cómo solucionarlo, pero tu sugerencia ilustra el problema. El problema es que se llama a OnResume mientras está viendo la pantalla de bloqueo. En la pantalla de bloqueo, la barra de estado es visible y causa un dibujo incorrecto. Recibir el intento de persentimiento del usuario ayudará a corregir el problema. El único problema ahora es que la llamada invalidada en las vistas parecía no tener ningún efecto. Pero esa debería ser la parte fácil. ¡Gracias de nuevo! –