2010-09-24 5 views
21

Ich benutze Layout_width="fill_parent "und Layout_height="wrap content". Wenn ein Bild größer als das Image ist, wird es perfekt verkleinerte werden.Funktioniert Android: scaleType = "fitCenter" nur mit den fixen Attributen Layout_width und Layout_height?

aber ich habe es nie gehobenen kleinere Bilder zu arbeiten. Ich habe versucht, eine beliebige Kombination von ScaleType und‚AdjustViewBounds‘ : es bleibt immer in seiner eigenen Größe in der Mitte des Sichtbild ist hier der Code ...

<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

Versuchen CENTER_INSIDE oder FIT_XY verwenden. – bhups

+0

Ich habe alle versucht. Keiner von ihnen arbeitete für mich. – OneWorld

+4

Ich fand den einzigen Weg, es zum Laufen zu bringen, legte layout_hight und layout_width auf feste Werte wie 150dp x 200dp – OneWorld

Antwort

1

android:scaleType="fitXY" ur Image Hinzufügen sollte das Bild strecken, wenn die Größe klein ist

+3

gut, dass das Seitenverhältnis nicht hält ... – OneWorld

+0

Ja, es funktioniert gut, wenn Bild größer ist, aber wenn es kleiner ist, dann passt es nur Höhe oder Breite. Dumm wie Android Bilder bearbeitet – JPM

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

verwendet die Originalgröße des Bildes im Inneren.

versuchen, etwas größer oder fill_parent

+0

Dies ist nur eine meiner goldenen Antworten, Sie haben keine Ahnung, wie viel Ärger ich mit Imageview und seinem fehlerhaften (oder missverstandenen) Maßstab hatte. Thamms eine Tonne. – Warpzit

2

Verwenden android:scaleType="FIT_START" oder android:scaleType="FIT_END", eine Skala zu berechnen, die das ursprüngliche src Seitenverhältnis wird beibehalten, sondern wird auch dafür sorgen, dass src vollständig innerhalb dst paßt (von GoogleDev).

Weitere Informationen:

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

+2

Es ist android: scaleType = "fitStart" oder android: scaleType = "fitEnd", und diese sind fast genau das gleiche wie Android: scaleType = "fitCenter" auf jeden Fall. Der Unterschied besteht darin, wie sie mit dem leeren Raum umgehen und beginnen, enden oder zentrieren. – OldSchool4664

9

Ich fand nur einen Weg, es funktioniert.

Dies funktioniert in 2.1 (AVD) & 4.1.2 (Gerät)

<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

mit dieser Methode, wenn Sie einen Rahmen an der Bildansicht haben, wird es Leerzeichen auf den Seiten geben, auf die das Bild nicht skaliert wurde – Olumide