Android 我的图像视图之间不需要的水平间距

Android 我的图像视图之间不需要的水平间距,android,android-layout,android-linearlayout,Android,Android Layout,Android Linearlayout,我试图以2x2网格的方式放置四个ImageView,我尝试了我所知道的一切,从tableLayout到relativeLayout,最后是嵌套布局,如下所示 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" android:layout_w

我试图以2x2网格的方式放置四个ImageView,我尝试了我所知道的一切,从tableLayout到relativeLayout,最后是嵌套布局,如下所示

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/top">

<ImageView
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:id="@+id/imageView"
    />



<ImageView
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:id="@+id/imageView2"
    />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_below="@id/top"
    android:id="@+id/btm">

<ImageView
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:id="@+id/imageView3"

    />

<ImageView
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:id="@+id/imageView4"
    android:layout_below="@id/imageView2"
    /></LinearLayout>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/changepic"
    android:id="@+id/button"

    android:layout_below="@id/btm"/>

但无论我做什么,我总是在同一行的ImageView之间得到这种“不需要的”水平间距,这在ImageView垂直视图之间是令人惊讶的,如图所示。
这是什么原因造成的?

我想完全摆脱线性布局——你不需要它,而且添加额外的视图在android上会带来糟糕的性能问题。取而代之的是,将第二幅图像做成左边的android:layout_-Toright。这也会破坏空间

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >


<ImageView
    android:layout_width="wrap_content"
    android:layout_height="150dp"
    android:id="@+id/imageView"
    />



<ImageView
    android:layout_width="wrap_content"
    android:layout_height="150dp"
    android:layout_toRightOf="@id/imageView"
    android:id="@+id/imageView2"
    />
...

...
此外-您确定您的宽度正确吗?它是一对150dpx150dp的图像。那些图像不是正方形的。您可能没有那么宽,所以额外的空间是因为图像只填充了150dp的一部分。您可能需要将内容的宽度换行。


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity" >

<LinearLayout
    android:id="@+id/top"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="left"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="right"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

<LinearLayout
    android:id="@+id/btm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="left"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="right"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/app_name" />

</LinearLayout>

看来调整视图边界也会有帮助。嗨,Gabe,就像我说的,我尝试了使用toRightOf和Below属性的相对布局,但得到了相同的结果。我很好奇为什么这些空间垂直消失,但水平出现??最奇怪的事情发生了,我把布局改回RelativeLayout,把宽度改成wrap_内容,这就是我得到的结果。在做了两件事后,它对我起了作用:1-把宽度改成wrap_内容2-倾斜屏幕我想我的自定义图片有问题,好像我试过ic_发射器,它能工作…?@RaedTabani如果你能使用ic_发射器,意味着你的布局没有问题。确保您的自定义原始图像没有边距通过倾斜屏幕并更改宽度和高度来包装内容,而不是固定dp,图像没有边距