2013-10-14 13 views
5

Ho bisogno di aiuto per allungare un'immagine di sfondo o ridimensionarla sia verticalmente che orizzontalmente in un layout lineare. Ogni volta che provo a impostare lo sfondo, tuttavia, non allunga l'immagine per adattarla allo schermo. Non mi preoccupo nemmeno di mantenere le proporzioni.Come allungare/ridimensionare le immagini di sfondo in un layout lineare Android?

Ecco quello che ho in un xml di prova in questo momento:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/title" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background"> 
</LinearLayout> 

che assomiglia a questo in anteprima (e nel gioco):

enter image description here

Se cambio il layout_height to fill_parent ottengo uno sfondo ripetuto:

enter image description here Sono sicuro che la soluzione è estremamente di base, ma per qualche motivo mi manca. Qualsiasi aiuto sarebbe apprezzato

grazie

+0

Il problema sembra che si apre con il tablet ... cercare di usa un'immagine più grande e imposta larghezza e altezza a "match_parent" – MikeKeepsOnShine

+0

Vorrei che ci fossero più risposte qui. –

+0

Come hai testato tutte le schermate in questo modo? – Sami

risposta

6

Non sono sicuro che sono disponibili per l'attributo di un layout di sfondo opzioni disponibili layout di sfondo, ma si può sempre e solo porre ImageView come il primo elemento di un FrameLayout esterna con larghezza massima e altezza. Quindi qualsiasi altra cosa tu inserirai nel layout verrà disegnata sopra questa immagine. E naturalmente puoi semplicemente caricare un tipo di scalino che desideri; come fitXY forse per quello che stai cercando di ottenere.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<ImageView 
    android:id="@+id/background" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:contentDescription="@string/backgroundDescription" 
    android:scaleType="centerCrop"> 
</ImageView> 
... 
4

ecco importante parametro android:scaleType con uno dei possibili valori:

  • matrice
  • fitXY
  • fitStart
  • fitCenter
  • fitEnd
  • centro
  • centerCrop
  • centerInside

se non ti dispiace immagine da croped quando è necessario (schermo di rapporto diverso da quello dell'immagine) e non si vuole immagine da deformare, mi sento di raccomandare centerCrop. se è importante che l'immagine non sia ritagliata e non ind sia inclinata, rispetto a fitXY farà il lavoro.

Spero che questo ha aiutato e cancellato le cose un po '...

0

È possibile utilizzare scaleType con centerCrop

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:src="@drawable/background" /> 

+0

Penso che fitXY sarà migliore in questo caso – Chaosit

Problemi correlati