Относительная компоновка перекрывает компоненты, объявленные в компоненте RelativeLayout - PullRequest
1 голос
/ 15 февраля 2012

Я очень новичок в качестве разработчика Android, и в настоящее время я понимаю RelativeLayout, но столкнулся с меньшей проблемой, что 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" />

    <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

Пожалуйста, помогите мне.

Спасибозаранее ..

Ответы [ 4 ]

3 голосов
/ 15 февраля 2012

используйте это свойство

 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 голос
/ 16 февраля 2012

Вы можете переключиться в графический режим и исправить вышеперечисленное. Это не значит, что вам нужно определять каждую вещь в XML напрямую, но вы можете переключиться в графический режим и исправить это.

1 голос
/ 15 февраля 2012

замените код вашего 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 голос
/ 15 февраля 2012

Добавьте еще две свойства 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 теперь находится между двумя ImageViews, поэтому независимо от того, какой там текст, он ничего не будет перекрывать.

...