Я думаю, что LinearLayout здесь лучше, потому что самый простой способ установить соответствующие размеры - это использовать layout_weight.Если вы установите ненулевой вес только для одного элемента в LinearLayout, тогда он займет все оставшееся пространство.layout_weight делит оставшиеся пробелы в соотношении заданных весов.Он вычисляет размер оставшегося пространства после установки заданного layout_width-s (или height), а затем переопределит эти размеры.Если вы хотите разделить весь экран на фиксированные соотношения, а не оставшиеся пробелы после некоторой начальной настройки, то сначала вы должны установить размер элементов равным 0. Поэтому установите размер View1 равным wrap_content, а все остальные размерысоответствующие направления к 0 (заполнить родительский в другом направлении) и использовать layout_weight = 1.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical" android:layout_width ="wrap_content"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src=.../>
<SomeKindOfView
android:id="@+id/view2"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1"/>
</LinearLayout>
<AnotherView
android:id="@+id/view3"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="1"/>
</LinearLayout>