2016-06-07 13 views
0

Ich habe ein Layout mit Root-Relative-Layout und ImageView drin, wenn ich es Quelle festlegen das Bild passt nicht in Bild-Ansicht oberen und unteren Polsterung, die in der Vorschau ist aber nicht in XML definiert. Ich möchte wissen, wie man das Bild so streckt, dass es vollständig in ImageView passt.Bild nicht stretching innerhalb imageView android

XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#fff"> 
    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:src="@drawable/place_demo_2" 
     android:id="@+id/back_ground_place" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="400dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Manila Main" 
     android:id="@+id/visit_place_title" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="68dp" 
     android:textColor="#fff"/> 
</RelativeLayout> 

Preview

+0

Set 'android: Scaletype = "fitXY"' für den 'ImageView' –

Antwort

1

Sie werden Android: scaleType in Ihrer XML-Datei verwenden wollen. Es gibt mehrere Optionen, mit denen Sie wahrscheinlich spielen möchten, bis Sie das genaue Produkt erhalten, das Sie suchen, aber wenn Sie sich nicht für das Seitenverhältnis interessieren, klingt es, als ob Sie Android verwenden möchten: scaleType = "fitXY".

können Sie weitere Informationen finden Sie hier: https://developer.android.com/reference/android/widget/ImageView.ScaleType.html

Unterhalb der Rest der Optionen sind:

ImageView.ScaleType = "center"

  • Zentrieren Sie das Bild in der Ansicht , aber führen Sie keine Skalierung durch.

ImageView.Scaletype = „CENTER_CROP“

  • Maßstab das Bild gleichförmig (hält das Seitenverhältnis des Bildes), so daß beide Abmessungen (Breite und Höhe) des Bildes werden auf oder größer als die entsprechende Abmessung der Ansicht entspricht (minus Polsterung).

ImageView.ScaleType = „CENTER_INSIDE“

  • Maßstab das Bild gleichförmig (hält das Seitenverhältnis des Bildes), so daß beide Abmessungen (Breite und Höhe) des Bildes zu gleich oder kleiner sein werden als die entsprechende Dimension der Ansicht (minus Padding).

ImageView.ScaleType = "FIT_CENTER"

  • Maßstab das Bild mit CENTER.

ImageView.ScaleType = "FIT_END"

  • Maßstab das Bild mit END.

ImageView.ScaleType = "FIT_START"

  • Maßstab das Bild mit START.

ImageView.ScaleType = "FIT_XY"

  • Maßstab das Bild mit FILL.

ImageView.ScaleType = "MATRIX"

  • Maßstab der Bildmatrix beim Zeichnen.
0

Das ist, weil Sie das Image zu Eltern unten ausgerichtet haben, aber es ist eine Marge am unteren Rande des 400dp.
Lange Geschichte kurz, entfernen android:layout_alignParentBottom="true" android:layout_marginBottom="400dp"
Setzen Sie auch die layout_height to match_parent, wenn Sie möchten, dass das Bild den gesamten Bildschirm ausfüllt.
P. S. Auch fill_parent ist veraltet, verwenden Sie stattdessen .

+0

nein ich will nicht, dass es auf dem gesamten Bildschirm sein, sondern nur gebunden oben im Layout –

+0

Ok, kein Problem entfernen Sie einfach' android: layout_alignParentBottom = "true" android: layout_marginBottom = "400dp" ' –

+0

ich habe so und sogar versucht,

2

Mit Code:

YourImageView.SetScaleType(ImageView.ScaleType.FIT_XY); 

Mit xml:

android:scaleType="fitXY" 

Siehe auch unten Snapshots für andere alternative Optionen. enter image description here

3

Verwenden android:scaleType in Ihrem ImageView

android:scaleType="fitXY" 

prüfen weitere Optionen für Scaletype here

2

entweder Breite von Imageview machen wrap_content oder Sie android gesetzt haben: Scaletype von Imageview zu fitXY

2

Zum Bildansicht hinzufügen attr android:scaleType="fitXY"