web-dev-qa-db-fra.com

Comment ajouter un symbole de puce dans TextView?

J'ai un TextView et je veux ajouter un symbole de puce dans mon texte via XML. C'est possible?

132
Pria

Vous devez utiliser le codage caractère correct pour obtenir cet effet. Vous pouvez essayer avec •


Mettre à jour

Juste pour clarifier: utilisez setText("\u2022 Bullet"); pour ajouter la puce par programmation. 0x2022 = 8226

293
Benny Skogberg

Cela a fonctionné pour moi:

<string name="text_with_bullet">Text with a \u2022</string>
52
jackbijou

Copier coller: •. Je l'ai fait avec d'autres personnages étranges, tels que ◄ et ►.

Edit:here est un exemple. Les deux Buttons en bas ont Android:text="◄" et "►".

24
Felix

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.

17
The Cageybee

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>
4
Irfan

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>
4
Aditya Vyas-Lakhan

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);

 Result 

1
Faisal Naseer

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>&#8226;name1<br />&#8226;name2<br /></p>]]></string>

si vous voulez conserver un espace personnalisé, utilisez </pre> tag

0
war_Hero