Android XML ImageView位于TextView下方,但需要将底部与TextView对齐
因此,我的文本视图必须绘制在图像视图上,因此它在xml中的定义如下: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_
<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>