ventana studio emergente edittext custom crear con android android-dialog

studio - input dialog android



Cuadro de diálogo con fondo transparente en Android. (16)

Agregar este codigo

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

Editar

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

¿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);


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

<style name="DialogCustomTheme" parent="android:Theme.Holo.Dialog.NoActionBar"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> </style>

Uno puede configurar este tema para el diálogo como abajo

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

¡¡Disfrutar!!


El cuadro emergente de diálogo rellena el color de fondo negro o el color del tema por defecto, por lo que debe establecer el fondo TRANSPARENT en el cuadro de diálogo. Intenta a continuación el 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();


En caso de que extendiera 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 <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.


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"


Esto es lo que hice para lograr la translucidez con AlertDialog.

Creado un estilo personalizado:

<style name="TranslucentDialog" parent="@android:style/Theme.DeviceDefault.Dialog.Alert"> <item name="android:colorBackground">#32FFFFFF</item> </style>

Y luego crear el diálogo con:

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


He enfrentado el 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 agregar

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

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

Más en su conjunto de XML de actividad de diálogo

android:background= "#00000000"


Intenta esto en tu código:

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

Definitivamente funcionará ... en mi caso ...! mi amigo


La misma solución que zGnep pero usando xml:

android:background="@null"


Para cualquier persona que use un cuadro de diálogo personalizado con una clase personalizada, necesita cambiar la transparencia en la clase agregue esta línea en onCreate ():

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


Puedes usar el:

setBackgroundDrawable(null);

Método. Y lo 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 */


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, hice algunas excavaciones en el SDK de Android y encontré el dibujable de fondo de la ventana predeterminada, 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:

<inset xmlns:android="http://schemas.android.com/apk/res/android" android:inset="16dp"> <shape android:shape="rectangle"> <corners android:radius="2dp" /> <solid android:color="?attr/colorBackground" /> </shape> </inset>

Tenga en cuenta que android:color está configurado como ?attr/colorBackground . Este es el gris / blanco sólido predeterminado que ves. Para permitir que el color definido en android:background en 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í:

<inset xmlns:android="http://schemas.android.com/apk/res/android" android:inset="16dp"> <shape android:shape="rectangle"> <corners android:radius="2dp" /> <solid android:color="@android:color/transparent" /> </shape> </inset>

Después de eso, vaya a su tema y agregue esto:

<style name="MyTransparentDialog" parent="@android:style/Theme.Material.Dialog"> <item name="android:windowBackground">@drawable/newly_created_background_name</item> <item name="android:background">@color/some_transparent_color</item> </style>

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 el AlertDialog.Builder :

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

¡Entonces simplemente construya, cree y muestre el diálogo como de costumbre!


usa este código funciona conmigo:

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 utiliza Dialog.builder - no está dando la opción getwindow () en él.


<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>

usar en java

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

Espero que te ayude!


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

Este es mi camino, puedes intentarlo!