Диспетчер компоновки FrameLayout
в основном используется для динамического вывода одного представления, но его также можно заполнить множеством элементов, наложенных друг на друга. Можно определить один элемент как видимый, а остальные - невидимыми.
Если добавить в компоновку много элементов, то диспетчер FrameLayout
просто уложит их в стопку, один поверх другого, причём последний элемент будет наверху. Таким образом, можно получить достаточно интересный интерфейс, чем сейчас и займёмся.
Пример 1
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center"
android:src="@drawable/pic2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_gravity="center_horizontal|bottom"
android:padding="12dip"
android:background="#AA000000"
android:textColor="#ffffffff"
android:text="Клёвые туфли"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/google_plus"
android:layout_gravity="right|top"
android:layout_margin="12dip"/>
</FrameLayout>
Для начала мы добавили картинку во всю ширину/высоту экрана и добавили текст с подписью и картинку кнопки Google+, а далее используя атрибут
android:layout_gravity
, выровняли в макете. Текст выровнен по центру горизонтали и по низу экрана android:layout_gravity="center_horizontal|bottom"
, а кнопка Google+ выровнена по правому краю и сверху экрана android:layout_gravity="right|top"
. Как видно, они оказались поверх картинки.