100 votes

Android Texte sur l'image

J'ai un imageView avec une image, sur cette image je veux placer un texte. Comment puis-je y arriver?

168voto

Alesqui Points 2418

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

 <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativelayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

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

</RelativeLayout>
 

PS: ne fonctionne que dans un RelativeLayout

19voto

martar Points 170

Vous voudrez peut-être prendre si d’un côté différent: Il semble plus facile d’avoir un TextView avec un dessin sur le fond:

  <TextView
            android:id="@+id/text"
            android:background="@drawable/rounded_rectangle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        </TextView>
 

7voto

Hakan Ozbay Points 2896

Vous souhaitez utiliser une disposition FrameLayout ou Merge pour y parvenir. Le guide de développement Android en donne un bon exemple ici: Astuces pour la mise en page Android # 3: Optimiser par la fusion .

7voto

Chris Points 3853

Vous pourriez éventuellement

  • créer une nouvelle classe héritée de la classe ImageView et
  • remplacer la méthode onDraw . Appelez super.onDraw() dans cette méthode en premier et
  • puis dessinez le texte que vous souhaitez afficher.

Si vous le faites de cette façon, vous pouvez l'utiliser comme un seul composant de mise en page, ce qui facilite la mise en page avec d'autres composants.

6voto

trgraglia Points 3196

Il y a beaucoup de façons. Vous utilisez RelativeView ou AbsoluteView.

Avec relative, vous pouvez, par exemple, aligner l'image sur le parent du côté gauche et le texte également sur le parent gauche. Vous pouvez ensuite utiliser les marges, le remplissage et la gravité de la vue texte pour l'aligner à l'endroit où vous le souhaitez. vouloir sur l'image.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X