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 cambiar el color de entrada del imput en xml?
  • Android: idioma predeterminado de strings.xml
  • Los colores de Android no funcionan en mi dispositivo físico
  • ¿Cómo agregar un grupo de radio a los botones de radio dentro de una tabla?
  • Adaptación de adaptadores desde la vista de lista a la clase de vista de elemento único
  • Cómo definir caracteres especiales en la matriz de implementación de java Aplicación?
  • Android: ¿Cómo incluir un menú xml dentro de otro menú xml?
  • Cómo analizar el contenido html en android utilizando SAX PARSER
  • ¿Cómo inserto texto dentro de un rectángulo redondeado en la vista de Android?
  • Diseño horizontal flexible con `layout_weight` y` maxWidth`
  • ListView dentro de ScrollView con DrawerLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.