Android alinear el botón Cerrar a la esquina superior derecha del cuadro de diálogo?

estoy trabajando en un cuadro de diálogo personalizado y quiero colocar mi botón de cierre en la esquina superior derecha del cuadro de diálogo para que la imagen de cierre sería parcialmente en el cuadro de diálogo y parcialmente fuera …. ( https: // encrypted- tbn2.gstatic.com/images?q=tbn:ANd9GcSSfhWv1zPYhmCFVsO70qLY-CqGIKplU3TAVL6zdHaxvLZMsqYnwg )

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/someborder" android:orientation="horizontal" android:baselineAligned="false"> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:gravity="top|left" android:orientation="vertical" android:layout_weight="0.65"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:orientation="horizontal" android:layout_weight="0.82" > <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="vertical" android:paddingBottom="10dp" android:paddingLeft="8dp" android:paddingRight="5dp" android:paddingTop="10dp"> <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="left" > <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.30" android:gravity="center" android:shadowColor="@color/color" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="1" android:paddingLeft="1.2dp" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.20" android:gravity="center|center_vertical" android:shadowColor="@color/color" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="1"/> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.25" android:gravity="center_vertical|center" android:shadowColor="@color/color" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="1" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.25" android:gravity="center_vertical|center" android:shadowColor="@color/color" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="1" /> </TableRow> </TableLayout> </ScrollView> </LinearLayout> <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/horizontal_line" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:orientation="vertical" android:gravity="top|left" android:layout_weight=".15"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:paddingLeft="12dp" android:paddingBottom="5dp"> <CheckBox android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="10dp" android:textSize="12sp"/> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="2dp" android:paddingTop="1.75dp" android:src="@drawable/vertical_line" /> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:orientation="vertical" android:gravity="top|right" android:layout_weight=".38"> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".60" android:orientation="horizontal" android:gravity="top|right"> <ImageView android:id="@+id/id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"/> // Close button <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right"/> // Close Button </LinearLayout> <LinearLayout android:id="@+id/linear_layout" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".40" android:orientation="vertical" android:paddingBottom="8dp" > <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight=".40" android:layout_gravity="center" android:orientation="vertical" > <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_weight="0.33" android:textAlignment="center"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_weight="0.33" android:textAlignment="center"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_weight="0.33" android:textAlignment="center"/> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> 

Como esta imagen y su botón rojo del cierre. Gracias a todos de antemano ..

Aquí hay una manera de hacerlo. Coloque su diseño / vista de contenido en el mismo FrameLayout que el botón de cierre.

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- The following View represent the content. Note the margin --> <View android:layout_height="match_parent" android:layout_width="match_parent" android:background="#44aa00" android:layout_margin="18dp" /> <ImageButton android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="top|right" android:src="@android:drawable/ic_menu_close_clear_cancel" android:background="#ff0000" /> </FrameLayout> 

Notas:

  • El contenido debe aparecer antes del botón de cierre. Botón dibujado encima del contenido.
  • El botón se coloca en la esquina superior derecha estableciendo los 3 parámetros de diseño:

      android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="top|right" 
  • Establezca un margen en el contenido para obtener el efecto "parcialmente fuera".

Tengo una solución para eso, introduzca la descripción de la imagen aquí

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" > <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="15dp" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/img_popup_one" android:orientation="vertical" android:padding="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sign In" android:textColor="@color/clr_gray" android:textSize="16dp" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/img_edittext_bg" android:hint="Username" android:padding="5dp" android:singleLine="true" android:textColorHint="@color/clr_gray" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/img_edittext_bg" android:hint="Password" android:inputType="textPassword" android:padding="5dp" android:singleLine="true" android:textColorHint="@color/clr_gray" /> </LinearLayout> </FrameLayout> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="right|top" android:contentDescription="@string/contentDescription" android:src="@drawable/img_popup_close" /> </FrameLayout> </FrameLayout> 
  • Cambiar Theme.Dialog para que parezca Theme.Light.Dialog en Android
  • Android - Ventana de diálogo Prompt cuando toque en Notificación
  • Diálogo de Android: Eliminación de la barra de título
  • Show Dialog in Juego con lienzo
  • Cómo obtener el tamaño de un cuadro de diálogo personalizado en android?
  • Crear una clase general para el cuadro de diálogo personalizado en java Android
  • Reproducir vídeo en el cuadro de diálogo android
  • Llama al 911 en Android
  • Actividad que se mostrará incluso cuando el teléfono esté en modo bloqueado
  • Animar un cuadro de diálogo personalizado
  • Android: Cerrar ventana de diálogo al tocar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.