Eliminar el borde del diálogo de alerta con tema personalizado
En mi aplicación estoy utilizando el cuadro de diálogo de alerta con el tema de rectángulo redondeado.Pero tiene el rectángulo de alarmdialog y mi tema.Mi problema es cómo reemplazar el cuadro de diálogo de alerta como diálogo.Quiero mostrar este elemento conjunto con tema propio sólo.
- Cómo cerrar un cuadro de diálogo en Android mediante programación?
- Cambiar la cabecera de diálogo personalizada 'AlertDialog' encabezado '
- AlertDialog no muestra dos botones
- Personalización del diálogo de alerta en Android
- Diálogo de alerta dentro de un método de escucha de Onclick
Quiero salir de esta manera en lugar del tema anterior:
Actividad principal:
AlertDialog.Builder alertSeverity = new AlertDialog.Builder( getActivity(), R.style.Theme_CustomDialog); alertSeverity.setTitle("Severity Status"); CharSequence[] severityStatus = { "Low-Severity", "Middle-Severity", "High-Severity" }; alertSeverity.setItems(severityStatus, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } });
Mi tema:
<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/shapedialogtheme</item> <item name="android:windowFrame">@null</item> </style> <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#565656" /> <stroke android:width="5dp" android:color="#ffff8080" /> <corners android:radius="30dp" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> <size android:width="150dp" android:height="150dp"/> </shape>
- Android: especificación del tema personalizado para el diálogo personalizado AlertDialog.Builder envuelve el contenido en un diálogo
- Hacer estallar un diálogo de un hilo no perteneciente a la interfaz de usuario
- Cómo eliminar el espacio en blanco o el color alrededor de AlertDialog
- ¿Cómo construir una aplicación de Android que avisa al usuario, incluso si es asesinado?
- ¿Es posible hacer un botón en un AlertDialog que no cierre automáticamente el diálogo?
- establecer 2 alertas de proximidad con la misma emisión
- Quiero mostrar el botón Aceptar y cancelar en mi cuadro de diálogo de alerta?
- Evite usar 'px' como unidades, use 'dp' en su lugar
Utilice el cuadro de diálogo en lugar de AlertDialog.
Cree su diseño personalizado que desea mostrar en el cuadro de diálogo y en el diálogo setContent. Aplicar este tema android.R.style.Theme_Translucent_NoTitleBar
en el cuadro de diálogo se oculta el borde.
Aquí está un ejemplo de código.
Dialog dialog = new Dialog(activity.this, android.R.style.Theme_Translucent_NoTitleBar); // your layout file dialog.setContentView(R.layout.dialog); // for hide title dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //for set title dialog.setTitle("Custom Dialog"); dialog.show();
Actualizado:
Acabo de probar esto en AlertDialog.
AlertDialog.Builder alertSeverity = new AlertDialog.Builder( getActivity(), android.R.style.Theme_Translucent_NoTitleBar);
pruebe la siguiente solución:
se extienden desde el cuadro de diálogo y establecen la vista exacta para usar utilizando setContentView.
el alertDialog se utiliza para algunas funcionalidades. no es que pueda hacer lo que quieras.
tal vez en lugar de extender podría tomar el diálogo y luego usar el setContentView.
Usar diálogo en lugar de AlertDialog
Dialog callAlert = new Dialog(LoginActivity.this,R.style.CutomDialog); callAlert.setContentView(R.layout.call);
Style.xml
<style name="CutomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowAnimationStyle">@style/Animations.DialogAnimation</item> </style>
call.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="20dp" android:background="@drawable/call_bg"></RelativeLayout>
call_bg.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="3dp" android:color="#A20B3F" /> <corners android:bottomRightRadius="4dp" android:bottomLeftRadius="4dp" android:topLeftRadius="4dp" android:topRightRadius="4dp"/>
Lo principal es que usted tiene que hacer backgrpund de diseño transparente de lo contrario no será capaz de obtener salida como desee.
Para ello, es necesario diseñar un diálogo personalizado:
**dialog.xml** <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/txt_view_SaveAs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/save_as" android:layout_margin="10dp" android:textSize="25dp" /> <EditText android:id="@+id/edit_txt_SaveAs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="300dp" android:maxLines="1" android:textSize="20dp" android:maxLength="50" android:layout_margin="10dp" android:text="@string/save_as" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_margin="10dp" android:weightSum="1.0" > <Button android:id="@+id/btn_SaveAs" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="0.5" android:minWidth="100dp" android:textSize="20dp" android:text="@string/save" android:layout_margin="3dp" /> <Button android:id="@+id/btn_Cancel" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="0.5" android:minWidth="100dp" android:textSize="20dp" android:text="@string/cancel" android:layout_margin="3dp" /> </LinearLayout>
A continuación, puede crear una clase diferente para el diálogo en particular de la siguiente manera:
public class SaveDialog extends Dialog implements android.view.View.OnClickListener { private Context context; private TextView txt_view_SaveAs; private EditText edit_txt_SaveAs; private Button btn_SaveAs; private Button btn_Cancel; public SaveDialog(Context context) { super(context); this.context = context; // TODO Auto-generated constructor stub } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog); setCancelable(true); // Setting the Dialog to be Cancellable on Back Key Press txt_view_SaveAs = (TextView) findViewById(R.id.txt_view_SaveAs); edit_txt_SaveAs = (EditText) findViewById(R.id.edit_txt_SaveAs); btn_SaveAs = (Button) findViewById(R.id.btn_SaveAs); btn_SaveAs.setOnClickListener(this); btn_Cancel = (Button) findViewById(R.id.btn_Cancel); btn_Cancel.setOnClickListener(this); } @Override public void onClick(View v) { // Write code for all the buttons on click methods } }
A continuación, puede llamar al cuadro de diálogo personalizado en su clase principal mediante el siguiente código:
SaveDialog save_dialog = new SaveDialog(saving_activity); save_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); save_dialog.show();
No se puede eliminar el borde del cuadro de diálogo de alerta.
utilizar esta
public class ActivityIndicator extends Dialog implements android.view.View.OnClickListener{ protected static final String TAG = InfoIndicator.class.getName(); ImageView close; WebView info; public ActivityIndicator (Context context,String information) { super(context, android.R.style.Theme_Translucent_NoTitleBar); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.info); setCancelable(true); } }
y prueba esto abajo función para mostrar, ocultar y claro diálogo
private static ActivityIndicator activityIndicator; public static void hideActivityViewer() { if (activityIndicator != null) { activityIndicator.dismiss(); } activityIndicator = null; } public static void showActivityViewer(Context context) { if (activityIndicator == null) { activityIndicator = new ActivityIndicator(context); } activityIndicator.show(); } public static void clearDialogs() { activityIndicator = null; }
usted puede utilizar popwindow para más estilo por sí mismo
- Android: establece dos parámetros de gravedad mediante programación
- ¿Es mala práctica o grosero hacer ContentResolver.setMasterSyncAutomatically en una aplicación android?