Diálogo con fondo transparente en Android

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

enter image description here

final Dialog dialog = new Dialog(Screen1.this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.themechanger); 

    Agrega este código

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

    Editar

     dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 
      

    usar en java

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

    ¡Espero ayudarte!

    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

      @drawable/blue_searchbuttonpopupbackground   

    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 de diálogo de actividad XML

      android:background= "#00000000" 

    De alguna manera, la solución de Zacharias no funcionó para mí, así que he usado el siguiente tema para resolver este problema …

      

    Uno puede establecer este tema para el diálogo de la siguiente manera

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

    ¡¡Disfrutar!!

    Puedes usar:

     setBackgroundDrawable(null); 

    método. Y el siguiente es el documento:

      /** * Set the background to a given Drawable, or remove the background. If the * background has padding, this View's padding is set to the background's * padding. However, when a background is removed, this View's padding isn't * touched. If setting the padding is desired, please use * {@link #setPadding(int, int, int, int)}. * * @param d The Drawable to use as the background, or null to remove the * background */ 

    La ventana emergente de cuadro de diálogo rellena el color de fondo o el color del tema predeterminado, por lo que debe establecer el fondo TRANSPARENT en el cuadro de diálogo. Pruebe el siguiente código: –

     final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.setContentView(R.layout.splash); dialog.show(); 

    Un problema que encontré con todas las respuestas existentes es que los márgenes no se conservan. Esto se debe a que todos anulan el atributo android:windowBackground , que es responsable de los márgenes, con un color sólido. Sin embargo, investigué un poco en el SDK de Android y encontré el fondo predeterminado de la ventana dibujable, y lo modifiqué un poco para permitir diálogos transparentes.

    Primero, copie /platforms/android-22/data/res/drawable/dialog_background_material.xml en su proyecto. O bien, solo copie estas líneas en un nuevo archivo:

           

    Observe que android:color está establecido en ?attr/colorBackground . Este es el gris / blanco sólido predeterminado que ves. Para permitir que el color definido en android:background en tu estilo personalizado sea transparente y muestre la transparencia, todo lo que tenemos que hacer es cambiar ?attr/colorBackground por @android:color/transparent . Ahora se verá así:

           

    Después de eso, ve a tu tema y agrega esto:

      

    Asegúrese de reemplazar newly_created_background_name con el nombre real del archivo some_transparent_color que acaba de crear y reemplace some_transparent_color con el fondo transparente deseado.

    Después de eso, todo lo que tenemos que hacer es establecer el tema. Use esto al crear AlertDialog.Builder :

      AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyTransparentDialog); 

    ¡Entonces solo crea, crea y muestra el diálogo como de costumbre!

    La misma solución que zGnep pero usando xml:

     android:background="@null" 

    Esto es lo que hice para lograr translucidez con AlertDialog.

    Creado un estilo personalizado:

      

    Y luego crea el diálogo con:

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.TranslucentDialog); AlertDialog dialog = builder.create(); 

    Prueba esto en tu código:

     getWindow().setBackgroundDrawableResource(android.R.color.transparent); 

    Definitivamente funcionará … en mi caso …! mi amigo

    usa este código que me funciona:

      Dialog dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar); dialog.show(); 

    Atención :

    no use el constructor para cambiar el fondo

      Dialog dialog = new Dialog.Builder(MainActivity.this) .setView(view) .create(); dialog.show();dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 

    cambiar a

     Dialog dialog = new Dialog(getActivity()); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); mDialog.show(); 

    Cuando se usa Dialog.builder: no se le da la opción getwindow ().

     Window window = d.getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 

    este es mi camino, ¡puedes intentarlo!

    En mi caso, la solución funciona así:

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

    Y además en Xml de diálogo personalizado:

     android:alpha="0.8" 

    En caso de que haya extendido la clase DialogFrament , puede establecer el tema con:

     setStyle(DialogFragment.STYLE_NORMAL, R.style.customDialogTheme); 

    Y luego cree el tema personalizado en su archivo styles.xml (vea la respuesta de @ LongLv para los parámetros)

    No olvide agregar true si desea que el cuadro de diálogo se cierre si el usuario toca fuera del cuadro de diálogo.