Это можно сделать с помощью ViewGroup
. Но проблема не в группе представления - проблема в том, что у вас есть одно изображение для всего контента - это плохая практика.
Должно быть как минимум 2 изображения - одно для фона, а другоедля контента.
Это связано с проблемой фрагментации экранов устройства - слишком много разных разрешений, форматов изображения и dpis, чтобы одно изображение работало на всех них должным образом.
Я будупоказать вам пример на основе вашего пользовательского интерфейса с фоном и логотипом с маленькими изображениями под логотипом. Вам просто нужно разделить его на два файла - фон может быть jpg, но логотип должен быть png с прозрачностью. Если вы это сделаете - вот как должна выглядеть ваша раскладка.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/bg" />
<ImageView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:padding="24dp"
android:src="@drawable/logo" />
</FrameLayout>
Возможно, вы захотите поэкспериментировать с android:padding
и android:scaleType
для достижения наилучшего результата.
Редактировать
Изменено android:layout_height="match_parent"
на android:layout_height="wrap_content"
- так будет работать лучше
Надеюсь, это поможет.