¿Cómo elimino el fondo negro de un cuadro de diálogo en Android? La foto muestra el problema.
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
android
android-dialog
Programador
fuente
fuente
Respuestas:
Agrega este código
O este en su lugar:
fuente
dialog.getWindow().setBackgroundDrawable(new ColorDrawableResource(R.color.transparent));
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
uso en java
Espero ayudarte!
fuente
Me he enfrentado 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
Y luego agrega
en su archivo de manifiesto principal, dentro del bloque de la actividad de diálogo.
Además en su conjunto de actividad de diálogo XML
fuente
De alguna manera, la solución de Zacharias no funcionó para mí, así que he utilizado el siguiente tema para resolver este problema ...
Uno puede configurar este tema para el diálogo como a continuación
¡¡Disfrutar!!
fuente
Puedes usar el:
método. Y el siguiente es el documento:
fuente
El diálogo emergente llena el color de fondo negro predeterminado o el color del tema, por lo que debe establecer el
TRANSPARENT
fondo en el cuadro de diálogo. Pruebe el siguiente código: -fuente
si quieres destruir el fondo oscuro del diálogo, usa esto
fuente
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Objects.requireNonNull(alertDialog.getWindow()).setDimAmount(0); }
Un problema que encontré con todas las respuestas existentes es que los márgenes no se conservan. Esto es porque todos anulan el
android:windowBackground
atributo, 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 de la ventana predeterminado dibujable, y lo modifiqué un poco para permitir diálogos transparentes.Primero, copie /platforms/android-22/data/res/drawable/dialog_background_material.xml a su proyecto. O simplemente copie estas líneas en un nuevo archivo:
Tenga en cuenta que
android:color
se establece en?attr/colorBackground
. Este es el gris / blanco sólido predeterminado que ves. Para permitir que el color definido enandroid:background
su estilo personalizado sea transparente y muestre la transparencia, todo lo que tenemos que hacer es cambiar?attr/colorBackground
a@android:color/transparent
. Ahora se verá así:Después de eso, vaya a su tema y agregue esto:
Asegúrese de reemplazar
newly_created_background_name
con el nombre real del archivo dibujable que acaba de crear y reemplácelosome_transparent_color
con el fondo transparente deseado.Después de eso, todo lo que tenemos que hacer es establecer el tema. Use esto cuando cree el
AlertDialog.Builder
:Luego, solo crea, crea y muestra el diálogo como de costumbre.
fuente
La misma solución que zGnep pero usando xml:
fuente
Prueba esto en tu código:
definitivamente funcionará ... en mi caso ...! mi amigo
fuente
Esto es lo que hice para lograr la translucidez con AlertDialog.
Creó un estilo personalizado:
Y luego crea el diálogo con:
fuente
En mi caso, la solución funciona así:
Y además en Xml de diálogo personalizado:
fuente
usa este código, funciona conmigo:
fuente
Establecer estos códigos de estilo en estilo
Y simplemente cambie falso a verdadero debajo de la línea
Atenuará tu fondo.
fuente
Atención: no use el generador para cambiar el fondo.
cambiar a
Al usar Dialog.builder, no está dando
getWindow()
opción en él.fuente
este es mi camino, puedes intentarlo!
fuente
En caso de que haya extendido la
DialogFrament
clase, puede configurar el tema con:Y luego cree el tema personalizado en su archivo styles.xml (consulte la respuesta de @ LongLv para ver los parámetros)
No olvide agregar
<item name="android:windowCloseOnTouchOutside">true</item>
si desea que el cuadro de diálogo se cierre si el usuario toca fuera del cuadro de diálogo.fuente
Para cualquiera que use un diálogo personalizado con una clase personalizada, debe cambiar la transparencia en la clase, agregar esta línea en onCreate ():
fuente
dialog.getWindow (). setBackgroundDrawable (nuevo ColorDrawable (ContextCompat.getColor (ctx, android.R.color.transparent)));
fuente
Asegurarse
R.layout.themechanger
no tenga color de fondo porque, por defecto, el cuadro de diálogo tiene un color de fondo predeterminado.También necesitas agregar
dialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));
Y finalmente
fuente