J'ai un imageView avec une image, sur cette image je veux placer un texte. Comment puis-je y arriver?
Réponses
Trop de publicités?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
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 .
Vous pourriez éventuellement
- créer une nouvelle classe héritée de la classe ImageView et
- remplacer la méthode
onDraw
. Appelezsuper.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.
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.