OK, więc ten wątek jest trochę stary, ale mam rozwiązanie, które kiedyś może się przydać. Wydaje mi się, że Android ma problemy z przeskalowaniem dużych obrazów, więc rozmiar LinearLayout zostaje zerwany przez bitmapę do rysowania tła, a ImageView kończy się wymuszeniem rozmiaru kontenera nadrzędnego.
O ile nie korzystasz z układu względnego. Możesz ustawić ImageView w stosunku do pozycji LinearLayout, nawet jeśli ImageView znajduje się za układem w rodzica. Moje rozwiązanie wygląda mniej więcej tak:
<?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>
Próbowałem tego na górze ekranu i wersji systemu operacyjnego, wydaje się działać świetnie. Zwróć uwagę, że dopełnienie w LinearLayout jest sztuczką, aby zrobić miejsce na obramowanie cienia w grafice tła. LinearLayout nie wymaga pozycjonowania względnego, ponieważ zakłada się lewą górną krawędź.
Tak, niestety, mój obraz nie układa się i nie nadaje się do 9-łatek. – Petrus
Nie jestem pewien, czy to jest poprawne ... Wciąż widzę ten sam problem, gdy używam 9-łatek. 9-łatek rozszerzy się, ale nie zmniejszy się. – greg7gkb