Disposición de Android: coloca una vista entre dos vistas

Estoy tratando de hacer una pantalla, preferiblemente con sólo XML, para que parezca esto: Introduzca aquí la descripción de la imagen

He seguido este enfoque, pero usando FrameLayout sólo tengo la opción de colocar la vista "naranja" usando layout_gravity , y como trato de explicar en la imagen, no sé la altura de los diseños, porque ambos miden con layout_weight.

Mi diseño:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context="onit.radiolisten.MainActivity"> <FrameLayout android:id="@+id/layout_container_activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- TOP LAYOUT, THE GREEN ONE ON THE IMAGE --> <LinearLayout android:id="@+id/layout_top_activity_main" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="2" android:background="@color/colorPrimary" android:orientation="vertical"></LinearLayout> <!-- BOTTOM LAYOUT, THE BLUE ONE ON THE IMAGE --> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#e6e6e6"> </RelativeLayout> </LinearLayout> <!-- THIS IS THE IMAGE I WANT TO POSITION --> <ImageView android:id="@+id/btn_play_radio" android:layout_width="120dp" android:layout_height="120dp" android:layout_gravity="center" android:src="@drawable/play_icon" /> </FrameLayout> </LinearLayout> 

¿Puede hacerse esto solo con XML?

 <?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"> <--main layout--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <--top layout--> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="20dp" android:layout_weight="0.4" android:gravity="bottom|center"/> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.1" android:background="@color/callingscreen_color" android:gravity="center|top" /> </LinearLayout> <--layout for img--> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1.5" > </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.5" android:gravity="center|top"> <--IMage u want to put--> <ImageView android:id="@+id/ivimg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/img"/> </LinearLayout> </LinearLayout> </RelativeLayout> 
  • ¿Cómo podemos utilizar android: inputType en EditTextPreference?
  • Tipo de letra personalizado
  • No se puede agregar la dependencia de archivos XStream al proyecto de Android Studio
  • Gradle falla: nodo no soportado 'item' en ids.xml
  • Android nivel 21 compatibilidad hacia atrás? (Desde que salió la nueva actualización del SDK)
  • Actividad de configuración botón Arriba
  • Problemas con el diseño de XML de Android
  • Edición de Android Dibujo de rutas largas en MapView mediante análisis XML
  • ¿Hacer una Snackbar sin vista?
  • Android Material botón circular
  • Cómo cambiar la casilla de verificación (marcar casilla) color a blanco en android XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.