2010-09-24 9 views
21

Io uso Layout_width="fill_parent "e Layout_height="wrap content". Se un'immagine è più grande della ImageView, verrà ridimensionato perfettamente.Android: scaleType = "fitCenter" funziona solo con gli attributi Layout_width e Layout_height della correzione?

Tuttavia, non ho mai capito di lavoro a quelli eleganti immagini più piccole. Ho provato una qualsiasi combinazione di ScaleType e 'AdjustViewBounds' : rimane sempre nella sua dimensione in mezzo alla visualizzazione dell'immagine Ecco il codice ...

<LinearLayout 
     android:id="@+id/LinearLayout02" 
     android:layout_height="wrap_content" 
     android:background="@drawable/content_bg" 
     android:orientation="vertical" 
     android:padding="5dp" 
     android:layout_width="fill_parent" 
     android:layout_marginLeft="1px"> 
     <ImageView 
      android:layout_height="wrap_content" 
      android:src="@drawable/test" 
      android:id="@+id/ImageViewTest" 
      android:layout_width="fill_parent" 
      android:adjustViewBounds="true" 
      android:scaleType="center"></ImageView> 
</LinearLayout> 
+0

Prova utilizzando CENTER_INSIDE o FIT_XY. – bhups

+0

Ho provato tutti loro. Nessuno di loro ha funzionato per me. – OneWorld

+4

Ho trovato l'unico modo per farlo funzionare, impostando layout_hight e layout_width su valori fissi come 150dp x 200dp – OneWorld

risposta

1

Aggiunta android:scaleType="fitXY" ur ImageView dovrebbe allungare l'immagine se la dimensione è piccola

+3

beh che non mantiene le proporzioni ... – OneWorld

+0

Sì, funziona bene se l'immagine è più grande ma se è più piccola allora si adatta solo all'altezza o alla larghezza. Stupido il modo in cui Android gestisce le immagini – JPM

4
<LinearLayout 
    android:layout_height="wrap_content" 
.. 210

utilizza la dimensione originale dell'immagine all'interno.

provare qualcosa di più grande o fill_parent

+0

Questa è solo una delle mie risposte d'oro, non hai idea di quanti problemi ho avuto con imageview e il suo scalare errato (o incompreso). Thamls a tonnellata. – Warpzit

2

Usa android:scaleType="FIT_START" o android:scaleType="FIT_END", per calcolare una scala che manterrà le proporzioni src originali, ma anche in modo che si inserisce src interamente all'interno DST (da GoogleDev).

Maggiori informazioni:

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

+2

È Android: scaleType = "fitStart" o android: scaleType = "fitEnd", e questi sono quasi esattamente gli stessi di Android: scaleType = "fitCenter" comunque. La differenza è come gestiscono lo spazio vuoto, aliging per iniziare, terminare o centrare. – OldSchool4664

9

ho appena trovato un modo per farlo funzionare.

Questo funziona in 2.1 (AVD) & 4.1.2 (dispositivo)

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

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitCenter" /> 

</LinearLayout> 
+1

con questo metodo, se hai un bordo su imageView, ci saranno spazi bianchi sui lati in cui l'immagine non è stata ridimensionata – Olumide

Problemi correlati