Нет «лучшего» макета. Почти все типы макетов будут масштабироваться для разных устройств (Android разработан на основе этой концепции), кроме AbsoluteLayout, который все равно не рекомендуется.
LinearLayout лучше всего, если у вас есть только ряд (горизонтальный или вертикальный) содержимого для вставки. Использование таких значений, как dip-значения, fill_parent или wrap_content, автоматически подстраивается под их содержимое или размер экрана.
RelativeLayout, как указал Владимир, лучше всего подходит для макетов, в которых представления располагаются относительно других объектов в макете. Например, TextView, расположенный рядом с кнопкой «Отправить», является распространенным примером.
FrameLayout является своего рода заменой AbsoluteLayout; Вы можете наложить объекты друг на друга, просто указав отступы по краям рамки.
TableLayout - это, как это звучит, макет для дизайна в стиле Table. У вас может быть несколько строк и столбцов, а некоторые столбцы можно растягивать по размеру дисплея, чтобы макет не зависел от размера экрана.
РЕДАКТИРОВАТЬ: Если у вас есть объекты, выходящие за пределы области экрана, попробуйте обернуть ваш корневой макет в <ScrollView>
. Это позволит макет с возможностью прокрутки.
, например
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
..... //and so on
</RelativeLayout>
</ScrollView>