Ответ 1
Попробуй это
android:adjustViewBounds="true"
У меня есть очень простое изображение в RelativeLayout
и по какой-то причине я получаю дополнительный интервал сверху и снизу, который я не могу удалить. Как я могу это очистить?
Вот как это выглядит:
Вот код:
<?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>
Попробуй это
android:adjustViewBounds="true"
В вашем выше imageView
просто добавить android:scaleType="fitXY"
Ваша проблема, вероятно, в том, что у вас нет набора типов шкалы... Добавьте его в 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" />
Должно быть достаточно добавить свойство:
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" />
Если высота вашего изображения соответствует 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"/>
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:adjustViewBounds="true" />
это идеальное решение
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitXY"
/>
он не оставит ни одного лишнего дп в любой стороне. однако изображение будет искажено, если это не портретное изображение.
Используйте папку drawable-nodpi, если нет особых требований к изображениям. Тогда android: adjustViewBounds = "true"
действует по умолчанию.
Если вы используете drawable-nodpi, вам не нужно устанавливать android:adjustViewBounds = "true"
.
Я думаю, что это самый легкий метод.
Похоже, что изображение, которое вы устанавливаете, больше размера экрана.
вы можете попробовать 2 вещи:
измените каталог вашего изображения на каталог с более высоким разрешением, например, попробуйте поместить его в drawable-xhdpi.
попытайтесь установить match_parent для layout_width в ImageView.