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.
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
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);
TL;DR; Solo necesitas dos cosas, primero haz style
algo 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 style
se 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!
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"