我正在尝试以2x2网格方式放置四个ImageView,我尝试了从tableLayout到relativeLayout的所有知识,最后是一个嵌套的Layout,如下所示
<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"/>
但无论我做什么,我总是在同一行中的ImageViews之间得到这个“不需要的”水平间距,这在图像视图之间出乎意料地不存在。 Picture Here 造成这种情况的原因是什么?
答案 0 :(得分:0)
我完全摆脱了线性布局 - 你不需要它,添加额外的视图在Android上有糟糕的性能问题。而是制作第二个图像android:layout_toRightOf左边的那个。那也应该杀死这个空间。
<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的一部分。你可能想要宽度为wrap_content。
答案 1 :(得分:0)
<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>