ОК, так что эта тема немного старая, но у меня есть решение, которое кто-нибудь может найти полезным.Я думаю, что у Android есть проблемы с масштабированием больших изображений, поэтому размер LinearLayout в конечном итоге ограничивается растровым растровым изображением фона, а ImageView в конечном итоге увеличивает размер родительского контейнера.
Если вы не используете относительную компоновку,Вы можете сделать ImageView относительно положения LinearLayout, даже если ImageView находится позади макета в родительском элементе.Мое решение выглядит примерно так:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:src="@drawable/activation_popup"
android:scaleType="fitXY"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignTop="@+id/activation_layout"
android:layout_alignBottom="@id/activation_layout"
android:layout_alignLeft="@id/activation_layout"
android:layout_alignRight="@id/activation_layout"
android:contentDescription="@string/act_code_label" />
<LinearLayout
android:id="@id/activation_layout"
android:clipToPadding="true"
android:padding="25dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- LinearLayout wraps a bunch of smallish views here -->
</LinearLayout>
</RelativeLayout>
Я пробовал это на вершине размеров дисплея и версий ОС, похоже, отлично работает.Обратите внимание, что заполнение в LinearLayout - это хитрость, позволяющая выделить место для теневой границы в фоновом изображении.LinearLayout не нуждается в относительном позиционировании, потому что предполагается верхний левый угол.