Transparente AlertDialog tiene fondo negro

Tengo un estilo AlertDialog personalizado que hace transparente el cuadro AlertDialog . Funciona bien, excepto que cuando infiero mi diseño transparente deseado en la ventana de diálogo de alerta, se muestra con un fondo negro. Mi objetivo es tener un AlertDialog completamente transparente a donde parece que sólo hay 4 botones flotando en lugar de un marco. La imagen uno es lo que el diálogo personalizado me está dando, la imagen dos es mi deseada o lo que estoy apuntando.

Aquí está el código para el cuadro de Dialog personalizado

 <style name="CustomDialog" parent="android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleStyle">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:background">@android:color/transparent</item> </style> 

Esto es lo que estoy llamando en mi onCreate()

 AlertDialog.Builder imageDialog = new AlertDialog.Builder(TimeLine.this, R.style.CustomDialog); inflater = getLayoutInflater(); View view=inflater.inflate(R.layout.tabs, null);![enter image description here][1] AlertDialog a = imageDialog.create(); a.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); a.setView(view, 0, 0, 0, 0); a.show(); 

Cuadro de diálogo de alerta actual

Desired AlertDialog

* Edit **** ** El código para el diseño de tabulaciones xml está aquí `

 <RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:id="@+id/tabLayout" android:background="#000000ff"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button2" android:layout_marginTop="206dp" android:layout_below="@+id/button4" android:layout_alignStart="@+id/button4" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button3" android:layout_alignTop="@+id/button2" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button4" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_marginTop="100dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:layout_marginTop="100dp" /> </RelativeLayout> 

De la prueba para ver cuál es el origen del problema, he descubierto que es cierto que el diseño es transparente porque cuando cambio el color de fondo del diseño, también cambia el diálogo de alerta. Sin embargo, cuando el diseño se establece en transparente, parece que lo que hay detrás del diseño inflado es negro. Y por eso no estoy seguro de qué hacer o si es la configuración de AlertDialog o mi código de diseño.

El problema es que el AlertDialog builder no es realmente bueno para diseñar el diálogo transparente y siempre tendrá este fondo negro que es realmente un tema para él, sino que utiliza el cuadro de Dialog para crear un tema transparente.

muestra:

 Dialog alertDialog = new Dialog(this); alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); alertDialog.setContentView(R.layout.tabs); alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); alertDialog.show(); 

Usar Dialog no requiere ninguna manipulación del tema para el fondo transparente así que es básicamente fácil.

¿Ha intentado usar algo como esto:

 <style name="CustomDialog" parent="@android:style/Theme.Translucent"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> ... </style> 

EDITAR

Pruebe esto en código java

 dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

En su R.layout.tabs ,

Reemplazar

 <RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:id="@+id/tabLayout" android:background="#000000ff"> 

con

 <RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:id="@+id/tabLayout" android:background="@android:color/transparent"> 
  • ¿Cómo puedo reutilizar un AlertDialog para Sí / No en Android?
  • Android: ¿es posible agregar un enlace que se puede hacer clic en un recurso de cadena
  • Android: Seleccionar elementos en un ListView multi-select dentro de AlertDialog
  • ¿Creación de AlertDialog con métodos estáticos?
  • Cómo establecer el contenido de setSingleChoiceItems en onPrepareDialog?
  • Botón Ok para el cuadro de diálogo de alerta en Android
  • El método alertDialog.getButton () da una excepción de puntero nulo android
  • No se puede descartar el diálogo con botones personalizados
  • Android - Actualizar datos en un AlertDialog?
  • Estilo de AlertDialog setCustomTitle para que coincida con el título de AlertDialog estándar
  • Android - Color de fondo de AlertDialog personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.