Как добавить символ маркера в TextView? - PullRequest
140 голосов
/ 07 августа 2010

У меня есть TextView, и я хочу добавить символ маркера в мой текст через XML. Возможно ли это?

Ответы [ 8 ]

315 голосов
/ 07 августа 2010

Вы должны использовать правильную кодировку для достижения этого эффекта.Вы можете попробовать с •


Обновить

Просто чтобы уточнить: используйте setText("\u2022 Bullet");, чтобы добавить маркер программно.0x2022 = 8226

54 голосов
/ 30 июля 2013

Это сработало для меня:

<string name="text_with_bullet">Text with a \u2022</string>
25 голосов
/ 07 августа 2010

Копировать вставить: •.Я сделал это с другими странными символами, такими как ◄ и ►.

Редактировать: вот пример .Два Button s внизу имеют android:text="◄" и "►".

17 голосов
/ 18 октября 2010

Где-то где-то есть лучшее решение, но это то, что я сделал.

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

Это работает так, как вы хотите, но на самом деле обходной путь.

4 голосов
/ 21 сентября 2016

Вот так я и сделал.

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

и код для drawbale / circle.xml -

<?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 голосов
/ 06 июля 2016

С Юникодом мы можем сделать это легко, но если хотите изменить цвет маркера, я попробовал с цветным изображением маркера и установил его как нарисованный слева, и он работал

<TextView     
    android:text="Hello bullet"
    android:drawableLeft="@drawable/bulleticon" >
</TextView>
2 голосов
/ 14 марта 2019

Вы можете попробовать BulletSpan , как описано в документации для Android.

SpannableString string = new SpannableString("Text with\nBullet point");
string.setSpan(new BulletSpan(40, color, 20), 10, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

Result

0 голосов
/ 16 ноября 2016

Поскольку Android не поддерживает <ol>, <ul> or <li> HTML-элементы, я должен был сделать это так

<string name="names"><![CDATA[<p><h2>List of Names:</h2></p><p>&#8226;name1<br />&#8226;name2<br /></p>]]></string>

если вы хотите сохранить пользовательское пространство, используйте </pre> tag

...