77

我在 a 中有一个非常简单的图像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>
4

11 回答 11

274

试试这个

android:adjustViewBounds="true"

于 2014-03-03T10:34:01.213 回答
9

在您的上面imageView添加android:scaleType="fitXY"

于 2013-03-28T08:38:34.727 回答
5

您的问题可能是您没有设置比例类型...将其添加到 ImageView 的 XML 中,“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" />
于 2013-03-28T07:55:35.283 回答
5

必须足够添加属性:

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

于 2016-01-29T00:35:42.307 回答
4

如果您的图像视图高度为 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"/>
于 2017-02-14T10:50:43.057 回答
3

如果对图像没有特定要求,请使用drawable-nodpi文件夹。然后android: adjustViewBounds = "true"作为默认值。

如果你使用drawable-nodpi你不需要设置android:adjustViewBounds = "true".

我认为这是最轻松的方法。

于 2019-04-17T22:19:22.733 回答
2

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

为我工作前后图像 之前和之后的图像

于 2018-08-20T19:57:02.433 回答
0

只需在 Image 视图中添加 ScaleType="fitxy"

于 2015-07-01T12:52:00.247 回答
0

试试这个

<ImageView
     (...)
     android:adjustViewBounds="true" />
于 2017-04-06T07:23:24.433 回答
0

这是完美的解决方案

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

它不会在任何一侧留下任何额外的单个 dp。但是,如果不是纵向图像,图像会失真。

于 2018-03-03T10:25:56.693 回答
0

这行代码就能解决问题

android:adjustViewBounds="true"

不要忘记旋转图像

于 2020-06-16T08:10:20.550 回答