2012-01-29 20 views
5

Mi piacerebbe visualizzare un'immagine con un bordo. La soluzione qui sotto funziona bene per alcune immagini, ma non per altre.Ridimensionamento delle immagini incoerente su Android per Android: scaleType = "fitCenter"

Finora la mia ipotesi migliore è che funzioni bene per immagini più piccole ma non per quelle grandi.

Con un'immagine più piccola, la soluzione visualizza l'immagine con un bordo di 2 pixel. Con un'immagine grande lo sfondo è troppo largo in altezza.

Stavo testando questo con un'immagine che ho ridimensionato manualmente da dire 2000 * da 400 a 200 * 40. Quindi era la stessa immagine, solo a prescaled.

Qualche idea sul perché le foto di grandi dimensioni non si ridimensionino allo stesso modo di quelle più piccole?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:background="#ffffff" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:gravity="center" > 

    <ImageView 
      android:id="@+id/testimage" 
      android:background="#000000" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/testimage2" 
      android:padding="2dip" 
      android:scaleType="fitCenter" 
      /> 
</LinearLayout> 
+0

È possibile provare tutte le combinazioni di scaleType. –

+0

Questo è ciò che ho fatto e ho finito con fitCenter. Ero sicuro che fosse quello giusto, ma non lo era. – tzrnee

risposta

5

Rimuovere lo scaletype e utilizzare android: adjustViewBounds = "true" per Imageview.

+0

Sì, funziona perfettamente. Grazie! – tzrnee

Problemi correlati