Ho un layout che contiene alcuni campi di testo e ha un'immagine di sfondo che viene visualizzata nella parte superiore della mia attività. Mi piacerebbe che l'immagine di sfondo si ridimensionasse per avvolgere il contenuto (non preoccuparti delle proporzioni). Tuttavia, l'immagine è più grande del contenuto, quindi il layout avvolge l'immagine di sfondo. Ecco il mio codice originale:Ridimensiona l'immagine di sfondo per avvolgere il contenuto del layout
<RelativeLayout
android:layout_width="fill_parent"
android:id="@+id/HeaderList"
android:layout_gravity="top"
android:layout_height="wrap_content"
android:background="@drawable/header">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/NameText"
android:text="Jhn Doe"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingLeft="4dp"
android:paddingTop="4dp"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="#FFFFFF"
android:layout_alignParentLeft="true"
android:id="@+id/HoursText"
android:text="170 hours"
android:textSize="23sp"
android:layout_below="@+id/NameText"
android:paddingLeft="4dp"
/>
</RelativeLayout>
Dopo la ricerca attraverso alcune altre domande, ho trovato questi due:
How to wrap content views rather than background drawable?
Scale a Drawable or background image?
Sulla base di questo, ho creato un FrameLayout w/un ImageView mostrando lo sfondo. Sfortunatamente, non riesco ancora a farlo funzionare. Voglio che l'altezza dell'immagine di sfondo si riduca/si espanda con la dimensione delle viste del testo, ma con FrameLayout, ImageView si adatta alle dimensioni del suo genitore e non riesco a trovare un modo per far si che il genitore si adatti la dimensione del layout di visualizzazione del testo. Ecco il mio codice aggiornato:
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView android:src="@drawable/header"
android:layout_width="fill_parent"
android:scaleType="fitXY"
android:layout_height="fill_parent"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:id="@+id/HeaderList"
android:layout_gravity="top"
android:layout_height="wrap_content"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/NameText"
android:text="John Doe"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingLeft="4dp"
android:paddingTop="4dp"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="#FFFFFF"
android:layout_alignParentLeft="true"
android:id="@+id/HoursText"
android:text="170 hours"
android:textSize="23sp"
android:layout_below="@+id/NameText"
android:paddingLeft="4dp"
/>
</RelativeLayout>
</FrameLayout>
Qualcuno ha qualche suggerimento per il modo migliore per fare una scala dell'immagine alle dimensioni dei contenuti di alcuni layout? Non mi interessa il rapporto di aspetto dell'immagine, in quanto non ha importanza, voglio solo che riempia lo sfondo.
Grazie!
Due anni dopo e ancora nessuna risposta accettabile. Hai trovato una soluzione? – jfcartier
Lo stesso problema qui, credo che non ci sia una soluzione. Dobbiamo occuparci di The Wrong Thing (TM). –