Cómo cambiar el color detrás de Android Dialog

Me gustaría cambiar el color del fondo atenuado que rodea un cuadro de diálogo de Android (no el fondo de ventana dibujable) mediante programación. Estoy usando una actividad temática de diálogo. No quiero atenuarlo, ni borrarlo.

Si usted imagina un diálogo con tres botones, me gustaría tenerlo hacer algo como esto:

  • Haga clic en A: fondo a rojo translúcido
  • Haga clic en B: fondo amarillo translúcido
  • Haga clic en C: fondo a verde translúcido

No estoy seguro de que pueda cambiar el color del fondo. La atenuación se controla mediante el campo dimAmount del diseño de la ventana de diálogo (así como el indicador FLAG_DIM_BEHIND ). dimAmount es sólo un flotador entre 0,0 y 1,0 que controla la cantidad de oscurecimiento (transparente a totalmente opaco). Creo que es sólo una mezcla alfa del fondo existente; No hay control de color en la medida de lo que he podido encontrar.

Si está utilizando la actividad con Theme.Dialog entonces usted debe mirar en su archivo xml para el diseño y luego cambiar el color de fondo del contenedor más exterior.

  • Tema / estilo no se aplica cuando se utiliza inflater con ApplicationContext
  • Android: cambia TextView textColor cuando el padre está enfocado
  • Obtener valores de atributo predeterminados de un tema de Android en tiempo de ejecución?
  • TextView de Android cambia textColor con tema
  • Configuración del texto como "primario" en Android
  • Anulación de los atributos de estilo referenciados
  • Encontrar todos los estilos disponibles definidos por los temas de la plataforma Android
  • Creación de una actividad con el mismo entorno que ICS settings / Preferences
  • Theme.Dialog crea pantalla demasiado pequeña
  • Android: clipToPadding no funciona desde el tema, pero funciona como un estilo
  • PopupMenuStyle no funciona cuando cambio de padre = "@ style / Theme.AppCompat.Light.DarkActionBar">
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.