web-dev-qa-db-fra.com

comment définir un texte sur une imageView?

Je place une barre d'application en haut de l'écran qui ressemble à la figure suivante:

enter image description here

Maintenant, je veux définir un texte sur l'image, de sorte que l'image se présente comme suit:

enter image description here

Comment définir un texte sur une image? Merci d'avance

22
Siva K

S'il vous plaît essayez le code ci-dessous.

<?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>
24
Chirag

Si vous voulez simplement que le texte soit centré sur une image, il vous suffit d'un TextView, pas de vue d'image. Définissez Android:background="@drawable/yourImage" sur le TextView.

29
Tenfour04

Voilà comment je l'ai fait et cela a fonctionné exactement comme vous l'aviez demandé:

<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" />

Utiliser la mise en page relative pour cela

21
Reeta
  1. Utilisez FrameLayout(Tutorial)
<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>

Ou

2.Utilisez une image comme arrière-plan: Android:background="@drawable/yourImage"

8
Ajay Patel

Si vous souhaitez afficher n'importe quelle vue sur une présentation relative, vous devez définir la vue de niveau supérieur sous la vue de niveau inférieur ... par exemple

<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
V Jayakar Edidiah

il y a beaucoup de façons d'afficher du texte sur une image

1) Vous pouvez créer cette image avec du texte ... 2.

2
Niranj Patel

Si j'ai bien deviné, vous essayez d'utiliser Header pour votre échantillon.

Définissez l’arrière-plan comme image et ajoutez la vue texte à cette image.

<?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>

Sinon, vous devez fusionner les mises en page en utilisant Framelayout. 

Cochez cette case Exemple pour la disposition du cadre

1
Venky

Vous pouvez utiliser FrameLayout pour créer du texte sur une image comme ci-dessous: -

<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>
0
pm dubey