2011-03-09 10 views
20

Hola a todos tengo un problema con la incorporación de una vista de vídeo dentro de una vista de diálogoAndroid VideoView: Vista del vídeo es mucho más oscuro en una vista de diálogo

todo funciona bien, excepto que el video mostrado en el diálogo es mucho más oscuro que si se muestra en el resto de la actividad

¿Alguna idea?

Aquí hay un código

button1main.setOnClickListener(new OnClickListener() { 

       public VideoView videoView = null; 
       @Override 
       public void onClick(View v) { 
        //set up dialog 
        Dialog dialog = new Dialog(CustomDialog.this); 
        dialog.setContentView(R.layout.maindialog); 
        //dialog.setTitle("This is my custom dialog box"); 
        dialog.setCancelable(true); 


        this.videoView = (VideoView) dialog.findViewById(R.id.video); 
        VideoPlayer vp = new VideoPlayer(this.videoView, null); 
        vp.playVideo(); 

        //set up button 
        Button button = (Button) dialog.findViewById(R.id.Button01); 
        button.setOnClickListener(new OnClickListener() { 
        @Override 
         public void onClick(View v) { 
          finish(); 
         } 
        }); 
        //now that the dialog is set up, it's time to show it  
        dialog.show(); 
       } 
      }); 
+0

¿Alguna posibilidad de que haya resuelto esto y desee compartir su solución? – taymless

+0

Oh, sí, lo siento, estoy tan ocupado en mi proyecto, me olvidé de actualizar, verifique mi respuesta –

Respuesta

17

De hecho, encontré la solución a este (o al menos en mi caso)

parece que es un error del androide donde se crea el Ver vídeo detrás del diálogo y cuando el diálogo se abre se oscurece la vista previa, incluidos el video

la "solución rápida" he aplicado es

WindowManager.LayoutParams a = dialog.getWindow().getAttributes(); 
a.dimAmount = 0; 
dialog.getWindow().setAttributes(a); 

pueden ser una solución mejor solución como pasar el contexto del cuadro de diálogo en lugar de usar el mismo contexto para crear el cuadro de diálogo y la vista de video (verificare más adelante si llego el momento)

+1

, elimina todos los diálogos débiles, no solo los de videoview. – Kenji

57

parece que el VideoView se atenúa porque se crea detrás de la ventana. La solución Jason Rogers funciona pero significa que el área detrás del diálogo no se atenuará.

que utilizan

mVideoView.setZOrderOnTop(true); 

para llevar el VideoView a frente, de modo que no quede atenuado, pero aún así todo detrás de la voluntad de diálogo.

+0

Gracias querida ... –

+1

Ahora quiero agregar una imagen de botón de reproducción encima de mVideoView y mostrarla y ocultarla en la casilla de verificación de Reproducción(). ¿Cómo puedo poner esa imagen encima? ¿Alguna idea? – Yawar

+1

se acaba de hacer mi cambio videview a blanco y suele mostrar cualquier cosa – Kenji

2

Si bien el espacialista sugerido funciona, el único problema es si alguna vez desea establecer ZOrderOnTop en falso después de establecerlo en verdadero. Parece que una vez configurado, siempre es cierto.

Recientemente me encontré con el mismo problema (videoview en un diálogo) y la forma en que lo arreglé, de mala gana, fue borrar FLAG_DIM_BEHIND para que el video sea "brillante". Obtuve el efecto tenue simplemente haciendo que mi cuadro de diálogo sea de pantalla completa y estableciendo el fondo en un 'color oscuro' si eso tiene sentido.

Con respecto al controlador de medios, no pude encontrar ninguna forma de llevarlo a la parte superior del diálogo. Terminé creando un diseño de controles de medios personalizado y lo puse en la parte superior de la vista de video. Es importante en este contexto, ya que llamar a setZOrderOnTop le impediría colocar el controlador de medios en la parte superior de la vista de video.

Espero que esto tenga sentido y ayude a alguien.

0

una solución más simple es agregar esto a sus estilos, se desactivará fondo oscuro.

<item name="android:backgroundDimEnabled">false</item> 
Cuestiones relacionadas