2012-02-15 78 views
1

作为一名android开发人员,我非常新,我目前了解RelativeLayout,但面临的问题是Textview overLapping在图像上。在这里,我向你提供图像,我想要什么,我得到什么,还有我已经做了很多的代码。所以请帮助我。相对布局覆盖在RelativeLayout组件中声明的组件

<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> 

这是我想要的布局图像。

enter image description here

请帮助我。

在此先感谢..

+0

我会使用LinearLayout。 http://developer.android.com/resources/tutorials/views/hello-linearlayout.html – Sparky 2012-02-15 09:26:56

回答

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" /> 

+0

谢谢Raja很好的答案 – 2012-02-15 09:44:46

1

再添加两个TextView的android:layout_centerHorizontal="true"android:gravity="center"爆破性质,所以文本将YOUT 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个ImageViews之间,所以不管它有什么文字,它都不会重叠任何东西。

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> 
1

您可以切换到图形模式并修复上述问题。并不是你必须直接用XML定义所有的东西,但你可以切换到图形模式并修复它。