Как установить текст поверх изображения? - PullRequest
22 голосов
/ 25 апреля 2011

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

enter image description here

Теперь я хочу установить текст поверх изображения, поэтомучто изображение выглядит следующим образом:

enter image description here

Как установить текст поверх изображения?Заранее спасибо

Ответы [ 8 ]

29 голосов
/ 25 апреля 2011

Если вы просто хотите, чтобы текст располагался по центру изображения, все, что вам нужно, - это TextView, а не изображение.Установите android:background="@drawable/yourImage" в TextView.

24 голосов
/ 25 апреля 2011

Пожалуйста, попробуйте следующий код.

<?xml version="1.0" encoding="utf-8"?>

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:background="@drawable/your background image">


            <LinearLayout 
                android:layout_height="fill_parent"
                android:layout_width="fill_parent" 
                android:layout_weight="1"
                android:gravity="center" 
                android:orientation="vertical">

                <TextView 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" 
                    android:textColor="@color/white"
                    android:textSize="18sp" 
                    android:textStyle="bold"
                    android:singleLine="true" 
                    android:text="Subject"/>

            </LinearLayout>

</LinearLayout>
21 голосов
/ 15 января 2013

Вот как я это сделал, и это сработало именно так, как вы просили:

<ImageView
    android:id="@+id/myImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myImageSouce" />

<TextView
    android:id="@+id/myImageViewText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/myImageView"
    android:layout_alignTop="@+id/myImageView"
    android:layout_alignRight="@+id/myImageView"
    android:layout_alignBottom="@+id/myImageView"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="Hello"
    android:textColor="#000000" />

Использовать относительную компоновку для этого

8 голосов
/ 25 апреля 2011
  1. Использование FrameLayout (Учебное пособие)
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:id="@+id/ImageView01"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:src="@drawable/lake"
        android:scaleType="matrix"></ImageView>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:textSize="40dp"
        android:text="@string/top_text" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/bottom_text"
        android:layout_gravity="bottom"
        android:gravity="right"
        android:textColor="#fff"
        android:textSize="50dp" />
</FrameLayout>

Или

2.Используйте изображение в качестве фона: android:background="@drawable/yourImage"

2 голосов
/ 23 декабря 2014

Если вы хотите поместить любое представление в любое другое представление в относительном макете, вам нужно определить представление верхнего уровня ниже представления низкого уровня ... например

<ImageView
    android:id="@+id/myImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myImageSouce" />

<TextView
    android:id="@+id/myImageViewText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="Hello"
    android:textColor="#000000" />
2 голосов
/ 25 апреля 2011

Есть много способов отображения текста поверх изображения

1) вы можете сделать это изображение с текстом .. 2) Вы можете установить фон (это изображение) для просмотра текста.

1 голос
/ 25 апреля 2011

Если я правильно угадал, вы пытаетесь использовать заголовок для вашего образца ..

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="55px"
    android:background="@drawable/testheader"
    android:layout_width="fill_parent"
    android:orientation="horizontal">           
        <TextView android:id="@+id/quaddeal_header_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dip"
            android:text="Campus"
            android:textSize="20sp"
            android:textColor="@color/white"
            android:layout_marginLeft="90dip"/>
</RelativeLayout>

Или ещеВы должны объединить макеты с помощью Framelayout.

Проверьте это Образец для структуры кадра

0 голосов
/ 15 января 2017

Вы можете использовать FrameLayout для получения текста поверх изображения, как показано ниже: -

<FrameLayout android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageButton
        android:id="@+id/imgbtnUploadPendingPods"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/com" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_gravity="center"
        android:text="hii"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</FrameLayout>
...