OK, quindi questa discussione è un po 'vecchia, ma ho una soluzione che qualcuno potrebbe trovare utile un giorno. Penso che Android abbia problemi nel ridimensionare le immagini di grandi dimensioni, quindi la dimensione di LinearLayout finisce per essere colpita dalla bitmap drawable dello sfondo e ImageView finisce per forzare la dimensione del contenitore principale.
A meno che non si utilizzi un layout relativo. È possibile rendere ImageView in relazione alla posizione del LinearLayout, anche quando ImageView si trova dietro il layout nel genitore. La mia soluzione è simile a questa:
<?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>
Ho provato questo su una parte superiore delle dimensioni del display e delle versioni del sistema operativo, sembra funzionare benissimo. Nota che il padding nel LinearLayout è un trucco per creare uno spazio per un bordo ombreggiato nel grafico dell'immagine di sfondo. LinearLayout non ha bisogno di alcun posizionamento relativo perché si presume in alto a sinistra.
fonte
2013-10-16 13:52:18
Sì, sfortunatamente la mia immagine non viene visualizzata e non è adatta per 9 patch. – Petrus
Non sono sicuro che sia corretto ... Sto ancora vedendo questo stesso problema accadere quando si usano 9 patch. Le 9 patch si espandono ma non sembrano ridursi. – greg7gkb