¿Cómo puedo alinear un elemento para estar en el centro de y sobre otro elemento en el diseño relativo?

Aquí está una imagen para que pueda entender lo que quiero:

Introduzca aquí la descripción de la imagen

Tengo este elemento verde ya configurado en mi diseño relativo, y lo que quiero es poner otro elemento (el negro en la imagen) por encima de lo que se centra exactamente en el centro del elemento verde.

Tenga en cuenta que el elemento negro no tiene un ancho constante, y es más grande en anchura que el verde.

Hay cosas como android: layout_alignLeft y android: layout_alignRight que sería útil si quería alineado a la izquierda oa la derecha, pero por lo que sé no hay Android: layout_alignCenter por lo que no sé cómo hacer esto …

Como usted mismo dijo, poner ambos elementos dentro de un RelativeLayout .

A continuación, establezca la propiedad " center_horizontal " de ambos elementos en true y, a continuación, establezca la propiedad " below " del elemento green en el id del elemento black.

Aquí está el ejemplo completo:

<?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" > <View android:id="@+id/view1" android:layout_width="100dp" android:layout_height="40dp" android:background="@color/Black" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <View android:id="@+id/view2" android:layout_height="100dp" android:layout_below="@+id/view1" android:background="@color/Green" android:layout_centerHorizontal="true" /> </RelativeLayout> 

("Center_vertical" es un poco opcional)

O aquí, independientemente de la posición Views:

 <?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" > <View android:id="@+id/view1" android:layout_width="100dp" android:layout_height="40dp" android:background="@color/Black" android:layout_centerVertical="true" /> <View android:id="@+id/view2" android:layout_width="40dp" android:layout_height="100dp" android:layout_below="@+id/view1" android:layout_alignLeft="@+id/view1" android:layout_alignRight="@+id/view1" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@color/Green" /> </RelativeLayout> 

(En este caso, los márgenes definirán el segundo ancho de vistas)

Este es el resultado final:

Introduzca aquí la descripción de la imagen

  • Edición de la anchura de TableLayout de Android
  • Add Layout progamatically android
  • ¿Cómo agregar un elemento personalizado a un NavigationView con un diseño de menú?
  • Dimensión de ViewPager de Android
  • Compatibilidad con barras de acción
  • Cómo borrar la animación aplicada a ImageView android usando startAnimation
  • ¿Qué parte de Android se encarga de elegir un perfil de recurso correcto?
  • implementar android: stretchColumns = "*" programatically en Android
  • Después de girar una línea lineal, los eventos onclick no cambian de posición después de la rotación
  • El fondo de la barra de herramientas se convierte en color blanco cuando se establece en transparente
  • Diseñar un diseño como debajo de la imagen con botones de imagen en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.