我作为Android开发人员非常新,我目前正在理解RelativeLayout但面临一个较小的问题,即Textview覆盖了Image。在这里,我为你提供了我想要的东西和我得到的东西以及我所做过的代码。所以请帮助我。
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/firstImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/splash1" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/firstImage"
android:layout_alignBaseline="@id/firstImage"
android:text="@string/menu" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/splash1" />
</RelativeLayout>
这是我想要的布局图片。
请帮助我。
先谢谢..
答案 0 :(得分:3)
使用这些属性
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
用于文本视图..
检查此代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/firstImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/logo2"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/logo2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="menu" />
答案 1 :(得分:1)
添加另外两个textview android:layout_centerHorizontal="true"
和android:gravity="center"
的特性,因此文本将在TextView中居中。
如果文本太大(它会与图像重叠),可能会出现问题。为避免这种情况,您应该像这样定义您的布局:
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/firstImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/splash1"
/>
<ImageView
android:id="@+id/secondImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/splash1"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignTop="@id/firstImage"
android:layout_alignBottom="@id/firstImage"
android:layout_toRightOf="@id/firstImage"
android:layout_toLeftOf="@id/secondImage"
android:gravity="center"
android:text="@string/menu"
/>
</RelativeLayout>
注意,在TextView之前如何定义两个图像视图。那是因为那些图像视图将是您的锚视图,这意味着其他所有内容都将根据它们进行对齐。你的TextView现在位于2个ImageView之间,因此无论有什么文字,它都不会重叠。
答案 2 :(得分:1)
用这个替换你的xml文件代码......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/firstImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/splash1" />
<ImageView
android:id="@+id/firstImage2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/splash1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/firstImage2"
android:layout_toRightOf="@+id/firstImage"
android:text="@string/menu" />
</RelativeLayout>
答案 3 :(得分:1)
您可以切换到图形模式并修复上述问题。这不是你必须直接用XML定义所有东西,而是你可以切换到图形模式并修复它。