如何在Android中水平对齐三个ImageView?

时间:2013-09-25 11:12:27

标签: android

我想在屏幕底部显示三个ImageViews同等重量。但图像的大小并不固定。我想要显示2张图片,其中一张应隐藏,我该怎么办? 如何调整三个ImageViews之间应该并排的空间,而第三个ImageView不应该与屏幕上可见的两个ImageViews重叠?

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/main_imge_1"
   android:orientation="vertical" >

  <ImageView
    android:id="@+id/imageView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:background="#F9F939"
    android:src="@drawable/ic_launcher"
    android:layout_toLeftOf ="@+id/imageView6"
  android:layout_alignParentBottom="true"
    android:padding="15dp" />

 <ImageView
    android:id="@+id/imageView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#54F71D"

    android:src="@drawable/ic_launcher"
    android:layout_alignParentBottom="true"
    android:padding="15dp"
    android:layout_margin="10dp" />

  <ImageView
    android:id="@+id/imageView7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#1DF7AB"
    android:src="@drawable/ic_launcher"
  android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/imageView6"
    android:padding="15dp" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:3)

试试这种方式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center|bottom" >

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:background="#F9F939"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:background="#54F71D"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:background="#1DF7AB"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

<强>输出

enter image description here

答案 1 :(得分:1)

从我能解密的内容来看,你可能正在尝试实现这个目标:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal">


        <ImageView
    android:id="@+id/imageView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#F9F939"
    android:src="@drawable/ic_launcher"
    android:padding="15dp"
    android:layout_weight="1"
    />

  <ImageView
    android:id="@+id/imageView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#F9F939"
    android:src="@drawable/ic_launcher"
    android:padding="15dp"
    android:layout_weight="1"
    />

  <ImageView
    android:id="@+id/imageView7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#F9F939"
    android:src="@drawable/ic_launcher"
    android:padding="15dp"
    android:layout_weight="1"
    />


    </LinearLayout>

</RelativeLayout>

结果:

enter image description here

关键是使用封闭式LinearLayout来保留ImageView并将LinearLayoutRelativeLayout中的“底部”对齐。

答案 2 :(得分:0)

对每个ImageView使用android:layout_weight =“1”。并将RelativeLayout替换为Linearlayout。