Проблема с наложением текста на макет XML - PullRequest
0 голосов
/ 29 ноября 2011

Я использовал относительное расположение и вот что у меня есть.Я не могу получить изображение, чтобы заполнить раздел, который я хочу.Я не знаю, как это исправить.Я слышал кое-что об использовании веса макета, это то, что я должен использовать?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:background="@drawable/background">


<ImageView
    android:id="@+id/imagehome"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_margin="10dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_above="@+id/tvtitle1"
    android:src="@drawable/one" />

   <TextView
        android:id="@+id/tvtitle1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"         
        android:gravity="center_vertical"
        android:text="Voted Best Dentist five years running by"
        android:textSize="16dp"
        android:textColor="#9D4F1B"
        android:layout_above="@+id/tvtitle2"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="6dp"/>


   <TextView
        android:id="@+id/tvtitle2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:text="The Oakland Tribune"
        android:textSize="16dp"
        android:textColor="#9D4F1B"
        android:layout_above="@+id/tvhome"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="15dp"/>

    <TextView
        android:id="@+id/tvhome"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:text="     You&apos;ll be cared for by our highly trained staff of dental professionals,energized to work as a team while providing the highest quality of care for your dental health. We offer complete dentistry for the entire family at a single location.                                                           "
        android:textColor="#4C2016"
        android:textSize="15dp"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/special"
        android:layout_marginBottom="25dp" />


    <Button
        android:id="@+id/special"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:background="@drawable/cc"
        android:text="Specials"
        android:textColor="#F6E6C6"
        android:textSize="17dp"
        android:textStyle="bold"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/tvbutton"
        android:layout_marginBottom="15dp" />


    <TextView
        android:id="@+id/tvbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="App provided by Bay Area Dental Marketing"
        android:layout_centerHorizontal="true"
        android:textSize="10dp"
        android:layout_alignParentBottom="true" />



 </RelativeLayout>

в файле xml,

enter image description here

и на устройстве

enter image description here

Полученолучше, но его еще нет!

Ответы [ 4 ]

2 голосов
/ 29 ноября 2011

Не уверен, насколько вы гибки, но лучшим решением было бы удалить текст и изображение с фона и вместо этого добавить их в качестве представлений.Как вы уже убедились, если каждый элемент не будет добавлен в качестве представления, почти невозможно гарантировать, что он будет выглядеть корректно на всех устройствах.

1 голос
/ 30 ноября 2011

Даже используя предложенные выше ответы, вы все равно можете столкнуться с проблемой на экранах разных размеров.Лучшее решение, которое я могу придумать, - это создать отдельные ресурсы изображений для фона и переднего плана, а затем добавить вид изображения с изображением переднего плана в качестве источника.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/background" >
<!-- This method makes this layout redundant, dont need this anymore 
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="23dip"
    android:layout_marginRight="15dip"
    android:layout_marginTop="255dip" 
    android:orientation="vertical" >-->


<!-- put the foreground image in an imageview -->
<ImageView  android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/foregroundImage"/>


<TextView
    android:layout_width="276dp"
    android:layout_height="132dp"
    android:textSize="15dp"
    android:gravity="center_vertical"
    android:text="some text"
    android:textColor="#4C2016"/>

<Button
    android:id="@+id/special"
    android:layout_width="131dp"
    android:layout_height="40dp"
    android:background="@drawable/cc"
    android:layout_marginTop="20dip"
    android:layout_marginLeft="75dip"
    android:textSize="17dp"
    android:textStyle="bold"
    android:text="Specials"
    android:textColor="#F6E6C6" />
</LinearLayout>
1 голос
/ 29 ноября 2011

Используйте RelativeLayout, чтобы вам не приходилось указывать пиксели.

Альтернатива, если вы делаете это для одного конкретного телефона, выберите соответствующий размер экрана в XML-конструкторе в Eclipse.Тем не менее, использование RelativeLayout гарантирует, что он будет работать на всех телефонах

1 голос
/ 29 ноября 2011

При работе с экранами нескольких размеров я рекомендовал (а) использовать RelativeLayout или (b) установить LinearLayout внутри ScrollView .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...