Cómo hacer que este fragmento de diálogo simple semi-transparente

Estoy tratando de hacer este diálogo simple semi-transparente:

class TestDialog extends SherlockDialogFragment { public TestDialog() { super(); } @Override public Dialog onCreateDialog(Bundle savedInstanceStateBundle ) { AlertDialog.Builder builder1 = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater1 = getActivity().getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the parent view because its going in the dialog layout builder1.setView(inflater1.inflate(R.layout.dlg_test, null)) // Add action buttons .setPositiveButton( "Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { // sign in the user ... } }) .setNegativeButton( "Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { } }); return builder1.create(); } } 

El diseño es el siguiente:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_marginBottom="4dp" android:hint="User name" /> </LinearLayout> 

He intentado todo, desde el uso de un .png transparente como el fondo dibujable de la disposición lineal, a establecer el campo alfa a 0,5, a usar como un dibujable un color igual a 0. No soy capaz de hacer que el diálogo semi-transparente . No sé si es posible. Lo que me gustaría crear es un diálogo como el panel en la siguiente imagen: Panel de control semitransparente . Gracias. Nota1: el min sdk requerido es la versión 8, el objetivo es el último (en realidad, v17).

En lugar de:

 return builder1.create(); 

Trate de poner esto:

 Dialog dialog = builder1.create(); Drawable d = new ColorDrawable(Color.BLACK); d.setAlpha(130); dialog.getWindow().setBackgroundDrawable(d); return dialog; 
 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); return dialog; } 

Podrías poner

 getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

En el cuadro de diálogo onCreateView también.

Puede probar cualquiera de estos dos temas en su referencia de fragmento de diálogo.

 yourdialogFragment.setStyle(style,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 

o

 yourdialogFragment.setStyle(style,android.R.style.Theme_Holo_Light_Dialog); 

Espero que esto ayude.

Usted puede intentar hacer el fondo transparente, utilice esto si usted super clase es un diálogo:

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

O esto si su superclase es un DialogFragment:

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

Mi otra solución era similar a "kaushal trivedi" uno. Utilizar DialogFragments:

 public class MyDialogFragment extends DialogFragment { ... @Override public void onCreate(Bundle savedInstance){ super.onCreate(savedInstance); setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.my_dialog, container,false); } } 

Esto hace que su diálogo sea de pantalla completa y sin fondo, por lo que puede poner lo que quiera en su interior.

Prueba esto

 public class Dialogs extends DialogFragment { public Dialogs() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style. Theme_WallpaperSettings); } } 

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

Creado un estilo de encargo:

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

Enlace a mi respuesta a una pregunta relacionada: https://stackoverflow.com/a/36311627/4344057

  • DialogFragment con fondo claro (no atenuado)
  • OnContextItemSelected no se llama en un DialogFragment
  • OnCreateView Fragmento no llamado
  • Cómo evitar que un cuadro de diálogo se cierre cuando se hace clic en un botón
  • DialogFragment Cerrar Evento
  • DailogFragment - getArguments / setArguments - ¿por qué pasar los argumentos en un lote?
  • Deshabilitar el botón positivo / negativo en DialogFragment
  • Android DialogFragment con tema de AppCompat tema
  • Cómo mostrar un menú desplegable como la cabeza de chat de libro de cara en android
  • Cómo mostrar DialogFragment de Fragment en actionBar android
  • Disparar Evento táctil desde la vista DialogFragment a la vista de actividad principal
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.