2012-02-10 12 views
14

Non so come ottenere un'immagine per riempire lo schermo, ho provato tutto, forse c'è qualche particolare layout che dovrei usare ..?Android: come ottenere ImageView per riempire lo schermo

sto usando un ImageView, tuttavia questo solo riempie di circa il 70% dello schermo, lasciando spazio vuoto in fondo ...

Al momento sto solo usando un LinearLayout e impostando il suo background per la mia immagine Mentre questo riempie lo schermo, l'immagine è leggermente allungata, cosa che non voglio.

Qualsiasi aiuto sarebbe molto apprezzato! :)

Il codice all'interno dei tag ImageView della mia file di layout sono:

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:scaleType="centerCrop" 
android:adjustViewBounds="true" 
android:src="@drawable/image" 
+0

android: layout_height = "match_parent" farebbe – njzk2

risposta

42

// nel vostro XML attributo immagine come

android:scaleType="fitXY" 

o // utilizzando attraverso programatically

imgview.setScaleType(ScaleType.FIT_XY); 

Nota: questo vale per quando l'immagine è impostata con Android : src = "..." piuttosto che android: background = "..." poiché gli sfondi sono impostati per default per adattarsi alla vista.

+0

quando dici di usare anche questo attraverso la tua codifica, intendi nella tua attività? – Shaw

+0

@Shaw no Voglio dire che puoi anche farlo attraverso il programma –

+2

Questa risposta estenderà l'immagine - So che non era un requisito dell'OP, ma se vuoi una risposta che riempie lo schermo senza rovinare le proporzioni, controlla Risposta @Revs qui sotto. – ntgCleaner

4

utilizzare la linea qui sotto nella tua immagine View codice XML.

android:scaleType="fitXY" 
+0

questo non manterrà il rapporto – njzk2

+0

potrebbe essere ma riempirà lo schermo come vuoi OP e se la risoluzione dell'immagine è abbastanza buona allora non dovrebbe dare il problema. – Sunny

-1

È possibile utilizzare praticamente qualsiasi layout e basta impostare l'immagine di sfondo all'immagine. Quindi fai in modo che larghezza e altezza riempano il genitore.

o esempio se si desidera solo un immagine impostarla per il layout lineare principale

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
     android:layout_height="fill_parent" 
     android:background="@drawable/yourimage"> 
</LinearLayout>  
6
android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:adjustViewBounds="true" 
    android:src="@drawable/image" 

basta cambiare la larghezza di layout e l'altezza che lavorare sia con 'centro' e 'centercrop'

+1

Non sono sicuro del motivo per cui non è accettato: questa risposta funziona senza allungare l'immagine e perdere le proporzioni corrette. – ntgCleaner

0

Non dimenticare di rimuovere

android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 

dalle layoutparams, nella parte superiore del xml dell'attività. Altrimenti l'immagine avrà problemi a riempire l'intero schermo.

Problemi correlati