如何删除imageView上方和下方的多余空间?


72

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

Answers:


262

尝试这个

android:adjustViewBounds="true"


在我的代码中,此功能仅适用于'android:layout_width =“ match_parent” android:layout_height =“ match_parent”'
Tapa保存

2
谢谢。它很棒而且超级有用。
Farruh Habibullaev,

8

在您上面,imageView只需添加android:scaleType="fitXY"


2
将其更改为“ android:scaleType =“ fitXY””
2013年

4
这将改变长宽比,并使事物看起来绷紧或压扁。
Cory Roy

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

1
就我而言,我还需要一套安卓adjustViewBounds =“真”,作为其在这一问题解释说:stackoverflow.com/questions/9701685/...
AlvaroSantisteban

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


3

如果您的图片视图高度为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"/>

3

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

如果使用drawable-nodpi,则无需设置android:adjustViewBounds = "true"

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


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

适用于我之前和之后的图像 图像前后





0

这是完美的解决方案

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.