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>

Antworten:


262

Versuche dies

android:adjustViewBounds="true"


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"


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" />

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" />


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"/>

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.


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


1

Diese Codezeile löst das Problem

android:adjustViewBounds="true"

Vergessen Sie nicht, das Bild zu drehen


Dies wurde Jahre zuvor beantwortet!
Eduard Unruh



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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.