Android, RelativeLayout - PullRequest
       5

Android, RelativeLayout

1 голос
/ 24 марта 2011

У меня есть дочернее фоновое изображение внутри относительного макета:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="centerInside"
    android:src="@drawable/game_background_main"
    android:id="@+id/mainBackground"
    />

Затем я ввожу TextView после этого дочернего объекта внутри относительного макета:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/mainBackground"
    android:layout_marginTop="14dp"
    android:maxLines="1"
    android:scrollHorizontally="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:marqueeRepeatLimit="1"
    android:textColor="@android:color/black"
    android:background="@color/beige"
    android:id="@+id/myText"
    />

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

Проблема в текстовом представлении myText - почему его левая сторона начинается с левой стороны экрана, а не с левой стороны изображения mainBackground, как указано в инструкции?

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

Левая сторона ImageView находится на левой стороне экрана.centerInside влияет только на расположение содержимого в ImageView, но не на расположение ImageView.

Если вы хотите, чтобы ImageView центрировался в наборе RelativeLayout android:gravity="CENTER" в ImageView.

1 голос
/ 24 марта 2011

просто положить
android: layout_toRightOf = "@ + id / mainBackground" в теге textview и удалить
android: layout_alignLeft = "@ id / mainBackground" из тега textview

надеюсь, что это может помочь ....

...