para - grabar pantalla sin marca de agua android
Android: las vistas superpuestas en el último fotograma de un video de pantalla completa no se vuelven a dibujar correctamente al encender y apagar la pantalla (3)
En lugar de evitar que la pantalla se apague, puede optar por recibir un evento cuando el usuario desbloquea el bloqueo del teclado después de activar el teléfono.
En este punto, podría ser una buena idea llamar a View.invalidate en ambas vistas, esto debería causar un redibujado. La cadena de sorteo es muy inestable mientras la pantalla de bloqueo está arriba, porque su aplicación es técnicamente visible, justo debajo de la pantalla de bloqueo.
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context ctx, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_USER_PRESENT))
}
}, new IntentFilter(Intent.ACTION_USER_PRESENT));
Tengo un video que se reproduce en modo retrato. Al final del video, necesito mostrar algunas vistas sobre él. Esto funciona bien hasta ahora.
Sin embargo, tengo un problema en el que las vistas que se encuentran en el último cuadro 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 desbloquearla.
Lo que estoy observando es que cuando la pantalla vuelve a encenderse y desbloqueo. Mi video e imágenes se renderizan primero fuera del modo de pantalla completa (con la barra de estado aún mostrándose), 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 representan.
Estoy realmente perplejo en cuanto a cómo evitar que esto suceda.
Aquí está el proyecto de sandbox en github para evitar que este sea un post lleno de código.
La configuración básica para el proyecto es esta:
La actividad de fragmentos tiene una vista de video y una vista de botón en su diseño. Luego agrega un fragmento en un contenedor contentView. El contentView se desvanece en 1 segundo antes del final de la reproducción del 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 desaparece por completo, dejando las vistas sobre un fondo negro.
Gracias de antemano por cualquier ayuda que pueda proporcionar.
Aquí está el artefacto que ocurre cuando apagas, vuelves a encender y desbloqueas la pantalla. Tenga en cuenta que tuve que tomar una foto de ella. En DDMS, la herramienta de captura de pantalla ve las imágenes correctamente.
Parece que el diseño de la superposición fue cambiado por la barra del controlador.
¿No cree que se vio afectado por el área del controlador (reproducir / pausar / ff / rew + progreso)?
Puede haber una manera de evitar que la pantalla se apague en primer lugar, ya que esto sería bueno para resolver sus problemas de re dibujo, espero que esto ayude.