0

我有以下 XML 布局

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mainLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical">

            <ImageView
                android:id="@+id/IVLEFT"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_alignParentLeft="true"
                android:background="#ff0000"
                android:padding="1dp"
                />

            <ImageView
                android:id="@+id/IVRIGHT"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_toRightOf="@+id/IVLEFT"
                android:layout_alignParentRight="true"
                android:layout_alignBottom="@+id/IVLEFT"
                android:layout_alignTop="@+id/IVLEFT"
                android:src="@drawable/shadow_pages"
                android:background="#00ff00"
                android:padding="1dp" />
    </RelativeLayout>

我希望我的布局有 2 个 ImageViews - 一个在左边,一个在右边。但实际发生的是:

在运行时,我将 IVLEFT 的图像设置为一个大图像(比如 1024X768)——它覆盖了我的所有布局,放弃了 IVRIGHT(我什至看不到它)

有任何想法吗?

4

4 回答 4

0

尝试这个::

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mainLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical">

            <ImageView
                android:id="@+id/IVLEFT"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:background="#ff0000"
                android:padding="1dp"
                android:src="@drawable/ic_launcher"/>

            <ImageView
                android:id="@+id/IVRIGHT"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/IVLEFT"
                android:layout_alignParentRight="true"
                android:layout_alignBottom="@+id/IVLEFT"
                android:layout_alignTop="@+id/IVLEFT"
                android:src="@drawable/ic_launcher"
                android:background="#00ff00"
                android:padding="1dp" />
    </RelativeLayout>
于 2012-10-16T09:39:10.083 回答
0

这是因为您已将第一个ImageView宽度和高度指定给fill_parent. 所以它将获得整个布局。然后,您的布局还取决于您的第一张图片,因为如果您给第一张图片提供大图片Imageview,它将占用整个布局。

如果要并排显示 2 张图像,请尝试使用linearlayoutwith layout_weightsto two imageViews

也给你的RelativeLayout宽度和高度 fill_parent

于 2012-10-16T08:18:06.357 回答
0

这是因为你RelativeLayoutwrap_content宽度。即使它在屏幕之外,它也会占用它需要的所有空间。

改为使用fill_parent

于 2012-10-16T08:21:42.657 回答
0
  1. 将 RelativeLayout 宽度更改为fill_parent

  2. 您的 xml中没有带有 的 ImageView id = "@+id/magazineImageView",如果您的意思是"@+id/IVLEFT",则第一个图像本身占据了整个屏幕宽度,因此您看不到第二个图像。

  3. 如果您想查看第二张图像,请将 ImageView 宽度设为wrap_content或一些硬编码值

  4. 更重要的是,当您使用任何 View id 作为参考时,不要在 id 中使用+符号。+号用于定义视图的 id,第一次

利用:

android:layout_toRightOf="@id/magazineImageView"
于 2012-10-16T08:40:12.543 回答