studio programacion móviles libro desarrollo curso aplicaciones android layout

móviles - manual de programacion android pdf



Diálogo personalizado sin título y borde (9)

  1. Haz una clase como esta:

    public class CustomDialog extends Dialog { public AlertFinishiView(Context context) { super(context); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.dialog); getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); } }

  2. Haz un xml en la carpeta Layut con este diálogo de nombre

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <RelativeLayout android:layout_width="220dp" android:layout_height="140dp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:background="@drawable/bg_custom_dialog" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Button" /> </RelativeLayout> </RelativeLayout>

  3. agregue la imagen de arriba en su carpeta dibujable con el nombre bg_custom_dialog.9.png

  1. llama en tu actividad:

    CustomDialog customDialog = new CustomDialog(this); customDialog.show();

Basado en el código aquí, http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog . Con éxito puedo crear un diálogo personalizado con fondo y botones adentro, pero todavía hay algo que no está bien. Todavía hay un espacio para la barra de título y hay un borde alrededor de la vista. ¿Cómo deshacerse de estos títulos y fronteras?

aqui esta mi dialogo

Dialog pauseMenu = new Dialog(this,R.xml.pause_dialog); pauseMenu.setContentView(R.layout.pause_menu); return pauseMenu;

y aquí está mi diseño de pausa

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:background="@drawable/pause_menu_cropped" android:layout_gravity="center" android:gravity="center|center_horizontal"> <TableLayout android:layout_width="wrap_content" android:id="@+id/tableLayout1" android:layout_height="wrap_content"> <ImageButton android:src="@drawable/pause_button_quit" android:layout_width="wrap_content" android:background="@drawable/pause_button_quit" android:id="@+id/imageButton2" android:layout_height="wrap_content"></ImageButton> <ImageButton android:src="@drawable/pause_button_option" android:layout_width="wrap_content" android:background="@drawable/pause_button_option" android:id="@+id/imageButton1" android:layout_height="wrap_content"></ImageButton> </TableLayout> </LinearLayout>


Creo que esto te ayudará

gameOver sería el nombre del diálogo y en setContentView sería su diseño de diálogo personalizado

gameOver = new Dialog(Main.this); gameOver.requestWindowFeature(Window.FEATURE_NO_TITLE); gameOver.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); gameOver.setCancelable(false); gameOver.setContentView(R.layout.gameover);


Prueba el siguiente estilo en tu styles.xml:

<style name="free_floating_dialog" parent="@android:style/Theme.Holo.Light.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowCloseOnTouchOutside">false</item> </style>

Para obtener más opciones, consulte "Theme.Holo.Light.Dialog", que forma parte de las fuentes de Android (desde Honeycomb), o cualquier otro estilo de diálogo en el que esté basado.

Luego simplemente usa este estilo como base para tu propio diálogo:

Dialog myDialog = new Dialog(getActivity(), R.style.free_floating_dialog); myDialog.setContentView(R.layout.myContent);


Un diálogo no se puede crear sin un título. Más abajo en ese tutorial menciona:

Un diálogo realizado con la clase de diálogo base debe tener un título. Si no llama a setTitle (), entonces el espacio utilizado para el título permanece vacío, pero sigue siendo visible. Si no desea un título, debe crear su cuadro de diálogo personalizado con la clase AlertDialog. Sin embargo, debido a que AlertDialog se crea más fácilmente con la clase AlertDialog.Builder, no tiene acceso al método setContentView (int) usado anteriormente. En su lugar, debe utilizar setView (Ver). Este método acepta un objeto de vista, por lo que necesita inflar el objeto de vista raíz del diseño desde XML.

Esta respuesta resuelve tanto el título como el problema del borde utilizando un estilo personalizado.


Usa esto, funciona perfectamente;

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before dialog.setContentView(R.layout.your_dialog_layout);


Yo uso este código y funciona bien:

AlertDialog.Builder builder = new AlertDialog.Builder(contextActivity,android.R.style.Theme_Holo_Dialog_NoActionBar); AlertDialog alertDialog = builder.create(); alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); alertDialog.setView(myLayout,0,0,0,0); alertDialog.show();



Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);


Dialog dialog = new Dialog(Main.this); dialog.getWindow(); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);