Android XML ImageView位于TextView下方,但需要将底部与TextView对齐

Android XML ImageView位于TextView下方,但需要将底部与TextView对齐,android,xml,layout,Android,Xml,Layout,因此,我的文本视图必须绘制在图像视图上,因此它在xml中的定义如下: <ImageView android:id="@+id/chatBalloon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_

因此,我的文本视图必须绘制在图像视图上,因此它在xml中的定义如下:

    <ImageView
        android:id="@+id/chatBalloon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="-5dp"
        android:layout_marginRight="-5dp"
        android:layout_marginTop="2dp"
        android:layout_toRightOf="@+id/chatItemProfPic"
        android:scaleType="fitXY"
        android:src="@drawable/chat_bar_user" />

    <TextView
        android:id="@+id/userText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="7dp"
        android:layout_marginTop="3dp"
        android:layout_toRightOf="@+id/chatItemProfPic"
        android:text="username"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="15sp" />
但由于该部分未定义textView,应用程序崩溃。我在LayoutParams中尝试通过addRule从代码中执行此操作时也会得到相同的结果,因为在绘制视图之前,我在onCreate中调用了它

有没有办法绕过这个

已解决: 最终xml:

    <ImageView
        android:id="@+id/chatBalloon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="-5dp"
        android:layout_marginRight="-5dp"
        android:layout_marginTop="2dp"
        android:layout_toRightOf="@+id/chatItemProfPic"
        android:scaleType="fitXY"
        android:layout_alignBottom="@+id/userText"
        android:src="@drawable/chat_bar_user" />

    <TextView
        android:id="@id/userText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="7dp"
        android:layout_marginTop="3dp"
        android:layout_toRightOf="@+id/chatItemProfPic"
        android:text="username"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="15sp" />

您使用

 android:layout_alignBottom="@+id/idOfText"
当您第一次引用某个特定id时。请注意“+”将该id添加到资源标识符列表中

然后,您可以在不使用“+”的情况下将现有id分配给小部件,如下所示:

android:id="@id/idOfText"
之后。在分配id时,通常会创建id,这就是为什么您只需要关心相对布局中是否存在“+”的原因

在您的具体情况下:

<ImageView
    android:id="@+id/chatBalloon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="-5dp"
    android:layout_marginRight="-5dp"
    android:layout_marginTop="2dp"
    android:layout_toRightOf="@id/chatItemProfPic"
    android:layout_alignBottom="@+id/userText"
    android:scaleType="fitXY"
    android:src="@drawable/chat_bar_user" />

<TextView
    android:id="@id/userText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="7dp"
    android:layout_marginTop="3dp"
    android:layout_toRightOf="@id/chatItemProfPic"
    android:text="username"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="15sp" />


您应该使用以下命令设置配置文件pic小部件的ID:
android:ID=“@+ID/chatItemProfPic”
,假设您在对小部件进行任何引用之前声明该小部件。否则,同样地,使用“+”作为第一个引用,然后在声明没有“+”的小部件时分配ID。为什么不将该图像放在textview背景中呢

或者类似于:

<RelativeLayout
            android:id="@+id/Rlayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="35dp" >

            <ImageView
                android:id="@+id/image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/img" />

            <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="lorem ipsum"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textSize="@dimen/dimension" />
        </RelativeLayout>


在相对布局中,您可以轻松地将文本放在imageview上方

请发布日志,是的。。就这样解决了。我不知道我可以从那里添加id。谢谢注意,使用“chatItemProfPic”,每次引用ID时都会添加ID。我本以为它也会在那里坠毁。。。但通常情况下,布局中每个ID只能有一次“+”(我认为更具体地说,如果ID位于单独的视图树中,则只允许重复ID)。我将编辑我的帖子。
<RelativeLayout
            android:id="@+id/Rlayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="35dp" >

            <ImageView
                android:id="@+id/image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/img" />

            <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="lorem ipsum"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textSize="@dimen/dimension" />
        </RelativeLayout>