Как убрать лишнее пространство выше и ниже imageView?

У меня действительно простое изображение в RelativeLayout и по какой-то причине я получаю дополнительное расстояние сверху и снизу, которое я не могу удалить. Как я могу это очистить?

Вот как это выглядит:

Изображение из предварительного просмотра Eclipse

Вот код:

<?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>

9 ответов

Решение

Попробуй это

android:adjustViewBounds="true"

В вашем приведенном выше изображении просто добавьте android:scaleType="fitXY"

Должно быть достаточно добавить свойство:

android:adjustViewBounds="true"

например:

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

Возможно, ваша проблема в том, что у вас не установлен тип масштаба... Добавьте его в XML для ImageView, "fitCenter" должен быть правильным, но есть и другие, проверьте: 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" />

Если высота вашего изображения равна match_parent, даже если вы установили android: AdjustViewBounds="true", ImageView добавит дополнительное пустое пространство сверху и снизу. Итак, измените ImageView высоту на wrap_content и установите Android: AdjustViewBounds="true"

например

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

Используйте папку drawable-nodpi, если нет особых требований к изображениям. затем android: adjustViewBounds = "true" действует по умолчанию.

Если вы используете drawable-nodpi, вам не нужно устанавливать android:adjustViewBounds = "true",

Я думаю, что это самый легкий метод.

Эта строка кода решит проблему

android:adjustViewBounds="true"

не забудьте повернуть изображение

android:scaleType="centerCrop", добавив это

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

работает для меня до и после изображения До и после изображения

Просто добавьте ScaleType="fitxy" в представлении изображения

Это идеальное решение

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

он не оставит ни одного лишнего дп в любой стороне. однако изображение будет искажено, если это не портретное изображение.

Попробуй это

<ImageView
     (...)
     android:adjustViewBounds="true" />
Другие вопросы по тегам