Diálogo con fondo transparente en Android

Resuelto Programmer asked hace 54 años • 25 respuestas

¿Cómo elimino el fondo negro de un cuadro de diálogo en Android? La foto muestra el problema.

ingrese la descripción de la imagen aquí

final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger); 
Programmer avatar Jan 01 '70 08:01 Programmer
Aceptado

Añade este código

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

O este en su lugar:

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
Zacharias Manuel avatar May 29 '2012 08:05 Zacharias Manuel

TL;DR; Solo necesitas dos cosas, primero haz stylealgo como:

<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>

En segundo lugar, asegúrese al 100% de que lo dicho stylese aplique a su diálogo (tal vez pasándolo al constructor).

Ejemplo completo

<style name="NewDialog">
    <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>

Uso en Java:

Dialog dialog = new Dialog(this, R.style.NewDialog);

Espero que te ayude!

LongLv avatar Sep 19 '2013 04:09 LongLv

Me enfrenté al problema más simple y la solución que se me ocurrió fue aplicar un TEMA de fondo transparente. Escribe estas líneas en tus estilos.

    <item name="android:windowBackground">@drawable/blue_searchbuttonpopupbackground</item>
</style>
<style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

Y luego agrega

android:theme="@style/Theme.Transparent"

en su archivo de manifiesto principal, dentro del bloque de la actividad de diálogo.

Además, en su conjunto XML de actividad de diálogo

 android:background= "#00000000"
Fahad Ishaque avatar Dec 08 '2012 09:12 Fahad Ishaque