Je veux utiliser un ImageView
pour montrer un message de façon élégante.
Je souhaite donc ajouter du texte à cette ImageView
. Comment faire ça?
Pour ajouter un texte à votre ImageView
, vous pouvez faire ceci:
<RelativeLayout> // Only works inside a RelativeLayout
<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>
Vous pouvez également utiliser un TextView et définir l'image d'arrière-plan sur ce que vous vouliez dans ImageView
. De plus, si vous utilisiez ImageView
comme un bouton, vous pouvez le définir sur click -able
Voici un code de base pour un TextView
qui montre une image avec du texte dessus.
<TextView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/your_image"
Android:text="your text here" />
La meilleure option pour utiliser du texte et des images dans une seule vue est la suivante:
<TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:drawableBottom="@drawable/ic_launcher"
Android:text="TextView" />
Utilisez drawalbeLeft/Right/Bottom/Top dans TextView pour rendre l’image à la position respective.
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:drawableLeft="@drawable/image"
Android:text="@strings/text"
/>
Je sais que cette question a disparu, mais si quelqu'un d'autre tombait sur cela, je voulais le leur faire savoir. Cela peut sembler une chose peu intuitive à faire, mais vous pouvez utiliser un bouton avec un clic sur clic défini sur faux ou quoi que ce soit. En effet, un bouton permet de définir drawableLeft, drawableRight, drawableTop, etc. en plus du texte.
<Button
Android:id="@+id/button1"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/border_box1"
Android:drawableLeft="@drawable/ar9_but_desc"
Android:padding="20dp"
Android:text="@string/ar4_button1"
Android:textColor="@color/white"
Android:textSize="24sp" />
Nouvelle information: Un bouton peut avoir des icônes dans drawableLeft, drawableRight, drawableTop et drawableBottom. Cela rend un bouton standard beaucoup plus flexible qu'un bouton d'image. La gauche, la droite, le haut, etc. est la relation avec le texte dans le bouton. Vous pouvez avoir plusieurs dessins sur le bouton, par exemple un à gauche, un à droite et le texte au milieu.
Pour dessiner du texte directement sur une toile, procédez comme suit:
Créer un objet Paint membre dans le constructeur myImageView
Paint mTextPaint = new Paint();
Utilisez canvas.drawText
Dans votre méthode myImageView.onDraw()
:
canvas.drawText("My fancy text", xpos, ypos, mTextPaint);
Explorez la documentation des classes Paint et Canvas pour ajouter des effets de fantaisie.
Avec FrameLayout, vous pouvez placer un texte au-dessus d'une vue d'image, la disposition du cadre contenant à la fois une imageView et une textView.
Si cela ne vous suffit pas et que vous voulez quelque chose de plus sophistiqué comme du texte 'dessiné', vous devez dessiner le texte sur une toile - un exemple est ici: Comment dessiner du texte RTL (arabe) sur un bitmap et le commander correctement ?
<FrameLayout
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="center_horizontal"
Android:layout_weight="30" >
<ImageButton
Android:id="@+id/imgbtnUploadPendingPods"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:contentDescription="@string/hello_world"
Android:src="@drawable/upload_icon" />
<TextView
Android:id="@+id/textView1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="center_horizontal"
Android:paddingTop="30dp"
Android:text="@string/pendingpods"
Android:textAppearance="?android:attr/textAppearanceSmall" />
</FrameLayout>
Vous pouvez utiliser le TextView dans le même but, mais si vous voulez utiliser la même chose avec le ImageView, vous devez créer une classe et étendre le ImageView, puis utiliser la méthode onDraw () pour peindre le texte sur le canevas. pour plus de détails, visitez le site http://developer.Android.com/reference/Android/graphics/Canvas.html