Как я могу установить layout_Above с двумя значениями?

Прямо сейчас у меня есть макет, который выглядит как одно из двух изображений ниже, в зависимости от точного размера экрана. Бот, что на одном, Play Game! кнопка находится сверху, а на другом текст об авторских правах сверху.

введите описание изображения здесь введите описание изображения здесь

Что я пытаюсь сделать, так это поместить изображение между окном просмотра и верхним текстовым полем / макетом. В зависимости от размеров экрана верхняя запись может отличаться. Я бы хотел, чтобы эта проблема вообще не возникала ... Я знаю, как разместить ее под изображением, но не над обоими элементами.

До сих пор я пробовал relativeLayout, который включает нижние переменные, и сказал, чтобы изображение было выше этого, но ниже AdView. Проблема в том, что верхняя часть RelativeView переходит в верхнюю часть, несмотря на то, что для нее установлено значение wrap_content, и ни одно из приведенных ниже значений не достигает такого высокого значения.

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

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

Вот соответствующий проверенный мной XML-код.

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" 
  android:orientation="vertical">
  <com.google.ads.AdView android:id="@+id/adView" ads:loadAdOnCreate="true" ads:adSize="BANNER" ads:adUnitId="@string/admob_unit_id" android:layout_width="wrap_content" android:layout_height="wrap_content" ></com.google.ads.AdView>
  <ImageView android:src="@drawable/start_logo" android:gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/logo_view" android:layout_below="@+id/adView" android:layout_above="@+id/buttons_copyright"></ImageView>
  <RelativeLayout android:id="@+id/buttons_copyright" android:layout_width="fill_parent" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true"  android:layout_alignParentTop="false" android:layout_height="wrap_content">
   (NOTE: LOTS OF STUFF GOES HERE)
  </RelativeLayout>
</RelativeLayout>

person PearsonArtPhoto    schedule 03.06.2011    source источник


Ответы (1)


Я сделал макет, который подойдет вам - он выглядит так: Изменить: попробуйте этот ...

введите описание изображения здесь

Используйте этот макет (замените верхнюю кнопку своим объявлением) (немного изменился с момента последнего редактирования, чтобы использовать другой относительный макет ...)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:text="Button"
        android:id="@+id/button1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"></Button>
    <TextView
        android:text="Version Text"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_alignBaseline="@+id/instructions_button"
        android:layout_toLeftOf="@+id/instructions_button"
        android:layout_marginLeft="5dp" />
    <Button
        android:id="@+id/instructions_button"
        android:layout_width="wrap_content"
        android:text="Instructions"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:minWidth="100dp"
        android:layout_alignParentBottom="true" />
    <TextView
        android:text="Game Name Text"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_alignBaseline="@+id/scores_button"
        android:layout_toLeftOf="@+id/scores_button"
        android:layout_marginLeft="5dp" />
    <Button
        android:id="@+id/scores_button"
        android:layout_width="wrap_content"
        android:text="High Scores"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:minWidth="100dp"
        android:layout_above="@+id/instructions_button" />
    <RelativeLayout
        android:id="@+id/copyright_layout"
        android:layout_above="@+id/scores_button"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent">
        <TextView
            android:text="Copyright text goes here and goes on and on a bit and fills up a few lines and looks ok generally and keeps on going and going and going and going onto many lines longer thatn it should etct"
            android:textSize="10sp"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_alignTop="@+id/play_button"
            android:layout_toLeftOf="@+id/play_button"
            android:layout_marginLeft="5dp" />
        <Button
            android:id="@+id/play_button"
            android:layout_width="wrap_content"
            android:text="Play Game!"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:minWidth="100dp"
            android:layout_above="@+id/scores_button" />
    </RelativeLayout>
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:id="@+id/imageView1"
        android:layout_margin="5dp"
        android:layout_above="@+id/copyright_layout"
        android:layout_below="@+id/button1"
        android:src="@drawable/map"
        android:scaleType="centerCrop" />
</RelativeLayout>
person Caspar Harmer    schedule 03.06.2011
comment
Что будет, если экран немного другого размера, а вопрос об авторских правах больше? Я видел, как это происходило в эмуляторах разного размера, отсюда и вопрос. Я пробовал вставить подобный код в себя, так что ... - person PearsonArtPhoto; 04.06.2011
comment
Я добавил немного больше описания, которое объясняет, что я пытаюсь сделать и почему. Суть в том, что ваша версия не будет работать на телефоне любого размера, который мне нужен, так что ... - person PearsonArtPhoto; 04.06.2011
comment
Это должно быть сделано сейчас. И последнее, что вы могли бы сделать, - это обернуть этот текст в скроллер и установить maxLines на 5. - person Caspar Harmer; 04.06.2011
comment
Мне нравится предложение из комментария. Хм. - person PearsonArtPhoto; 04.06.2011
comment
Я поставлю вам +1 за ваш комментарий. В итоге я поместил текст об авторских правах в режим прокрутки, выровняв его по верхней части кнопки «Воспроизвести». Это позволило мне не беспокоиться о том, что макет может вызвать проблемы. Спасибо! - person PearsonArtPhoto; 04.06.2011
comment
Я бы динамически изменил размер шрифта, чтобы кнопки не становились такими большими и чтобы текст оставался в относительном размере при разной ширине экрана. - person JPM; 01.09.2011