Wie entferne ich zusätzlichen Speicherplatz über und unter imageView?

72

Ich habe ein wirklich einfaches Bild in einem RelativeLayoutund aus irgendeinem Grund bekomme ich oben und unten zusätzlichen Abstand, den ich nicht entfernen kann. Wie kann ich das klären?

So sieht es aus:

Bild aus der Eclipse-Vorschau

Hier ist der Code:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:src="@drawable/slice11pp" />
</RelativeLayout>
UKDataGeek
quelle

Antworten:

262

Versuche dies

android:adjustViewBounds="true"

Sagar V.
quelle
In meinem Code funktioniert dies nur mit 'android: layout_width = "match_parent" android: layout_height = "match_parent"'
Tapa Save
2
Vielen Dank. Es war großartig und super nützlich.
Farruh Habibullaev
8

In Ihrem obigen imageViewfügen Sie einfach hinzuandroid:scaleType="fitXY"

k0sh
quelle
2
ändere es in ´android: scaleType = "fitXY" ´
user1616685
4
Dies ändert das Seitenverhältnis und lässt die Dinge gestreckt oder gequetscht aussehen.
Cory Roy
5

Ihr Problem ist wahrscheinlich, dass Sie keinen Skalentyp festgelegt haben ... Fügen Sie ihn zum XML für die ImageView hinzu. "FitCenter" sollte korrekt sein, aber es gibt andere, überprüfen Sie: ScaleType .

<ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:src="@drawable/slice11pp"
            android:scaleType="fitCenter" />
Tonithy
quelle
1
In meinem Fall musste ich auch android setzen: adjustViewBounds = "true", wie in dieser Frage erklärt: stackoverflow.com/questions/9701685/…
AlvaroSantisteban
5

Muss ausreichen, um die Eigenschaft hinzuzufügen:

android:adjustViewBounds="true"

zum Beispiel:

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/slice11pp"
        android:adjustViewBounds="true" />

Jorgesys
quelle
3

Wenn Ihre Bildansichtshöhe match_parent ist, auch wenn Sie android festlegen: adjustViewBounds = "true" ImageView fügt oben und unten zusätzliche Leerzeichen hinzu. Ändern Sie also die ImageView-Höhe in wrap_content und setzen Sie android: adjustViewBounds = "true"

zum Beispiel

<ImageView
  android:id="@+id/img_view"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:adjustViewBounds="true"/>
Amol Suryawanshi
quelle
3

Verwenden Sie den Ordner drawable-nodpi, wenn keine besonderen Anforderungen für Bilder bestehen. Dann android: adjustViewBounds = "true"fungiert als Standard.

Wenn Sie drawable-nodpi verwenden, müssen Sie keine Einstellungen vornehmenandroid:adjustViewBounds = "true" .

Ich denke, das ist die müheloseste Methode.

Mahmut K.
quelle
2

android: scaleType = "centerCrop" durch Hinzufügen dieser

<ImageView
    android:id="@+id/image"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:src="@drawable/temp_image"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop"/>

funktioniert für mich Vorher und Nachher Bild Vorher und Nachher Bild

Akhila Madari
quelle
1

Diese Codezeile löst das Problem

android:adjustViewBounds="true"

Vergessen Sie nicht, das Bild zu drehen

Ashraf Ezouli
quelle
Dies wurde Jahre zuvor beantwortet!
Eduard Unruh
0

Fügen Sie einfach ScaleType = "fitxy" in die Bildansicht ein

ananda velu v
quelle
0

Versuche dies

<ImageView
     (...)
     android:adjustViewBounds="true" />
Pankaj Talaviya
quelle
0

Das ist die perfekte Lösung

 <ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitXY"
/>

es wird keine zusätzliche einzelne dp in irgendeiner Seite hinterlassen. Das Bild wird jedoch verzerrt, wenn es kein Porträtbild ist.

Die EasyLearn Academy
quelle