J'ai un TextView et je veux ajouter un symbole de puce dans mon texte via XML. C'est possible?
Vous devez utiliser le codage caractère correct pour obtenir cet effet. Vous pouvez essayer avec •
Juste pour clarifier: utilisez setText("\u2022 Bullet");
pour ajouter la puce par programmation. 0x2022 = 8226
Cela a fonctionné pour moi:
<string name="text_with_bullet">Text with a \u2022</string>
Copier coller: •. Je l'ai fait avec d'autres personnages étranges, tels que ◄ et ►.
Edit:here est un exemple. Les deux Button
s en bas ont Android:text="◄"
et "►"
.
Prolly une meilleure solution quelque part, mais c’est ce que j’ai fait.
<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
>
<TableRow>
<TextView
Android:layout_column="1"
Android:text="•"></TextView>
<TextView
Android:layout_column="2"
Android:layout_width="wrap_content"
Android:text="First line"></TextView>
</TableRow>
<TableRow>
<TextView
Android:layout_column="1"
Android:text="•"></TextView>
<TextView
Android:layout_column="2"
Android:layout_width="wrap_content"
Android:text="Second line"></TextView>
</TableRow>
</TableLayout>
Cela fonctionne comme vous le souhaitez, mais une solution de contournement vraiment.
C'est comme ça que j'ai fini par le faire.
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<View
Android:layout_width="20dp"
Android:layout_height="20dp"
Android:background="@drawable/circle"
Android:drawableStart="@drawable/ic_bullet_point" />
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="10dp"
Android:text="Your text"
Android:textColor="#000000"
Android:textSize="14sp" />
</LinearLayout>
et le code pour drawable/circle.xml est
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadius="0dp"
Android:shape="ring"
Android:thickness="5dp"
Android:useLevel="false">
<solid Android:color="@color/black1" />
</shape>
Avec Unicode, nous pouvons le faire facilement, mais si vous voulez changer la couleur de la balle, j'ai essayé avec l'image de la balle colorée et le définir comme dessinable à gauche et cela a fonctionné
<TextView
Android:text="Hello bullet"
Android:drawableLeft="@drawable/bulleticon" >
</TextView>
Vous pouvez essayer BulletSpan comme décrit dans la documentation Android.
SpannableString string = new SpannableString("Text with\nBullet point");
string.setSpan(new BulletSpan(40, color, 20), 10, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Comme Android ne supporte pas les éléments <ol>, <ul> or <li>
html, je devais le faire comme ceci
<string name="names"><![CDATA[<p><h2>List of Names:</h2></p><p>•name1<br />•name2<br /></p>]]></string>
si vous voulez conserver un espace personnalisé, utilisez </pre> tag