2013-07-09 3 views
10

Мне нужен мой textview, чтобы иметь разные цветные тексты. Также мне нужно сделать это от xml кода, не от java-кода. Есть ли кто-нибудь, кто знает какой-то способ сделать это? СпасибоТекстовый вид с разными цветными текстами в xml-коде

, например. У меня есть предложение «Это красное». Мне нужно, чтобы слова были зелеными, а слово red было красным.

ответ

-3
<TextView 
    android:id="@+id/yourUniqueTextViewID" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello World" 
    android:textColor="@color/RED" /> 

Где «RED» - именованная константа, которую вы должны определить под res/values ​​/ в XML-файле. Обычно я создаю «colors.xml».

Или увидеть это хороший набор предопределенных цветов: Web colors in an Android color xml resource file

+1

Спасибо за ответ дорогого друг, но я имел в виду это. например У меня есть предложение «Это красное». Мне нужно, чтобы слова были зелеными, а слово было красным. –

14

См своего текст string.xml и с помощью HTML тегов шрифта, используя таким образом, вы можете изменить цвет каждого письма также.

просто добавьте это в Java для этой строки:

TextView tv=(TextView)findViewById(R.id.tv); 

    tv.setText(Html.fromHtml(getString(R.string.any_text))); 

и

В string.xml:

<string name="any_text"> 
<![CDATA[ <b><font color=#ff0000>write</b> your <b><font color=#0000ff>text</b> here . 

]]> 
    </string> 

надежда помочь вам

11

Есть три способа изменить цвет текста внутри текстового поля.

  1. через strings.xml файла (Рез> значения), используя тег (<![CDATA[<p>This is green <font color='hexvalue of red'>and this is red</font>.</p> ]]>), а затем объявляющего TextView в Java коде как myTextView.setText(Html.fromHtml(getString(R.string.myText));

  2. через Java код, используя HTML-тег String text = "<font color='hexvalue of green'>This is green</font> <font color='hexvalue of red'>and this is red</font>."; myTextView.setText(Html.fromHtml((text));

  3. через Spannable текст с использованием кода Java.

    Spannable span = new SpannableString("My String");

    span.setSpan(new ForegroundColorSpan(Color.RED), start_position,end_position,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    myTextView.setText(span);

Если есть другие способы сделать это, то я не знаю о них. Надеется, что это помогает

0

В классе Java определяет TextView так:

TextView tv = (TextView) findViewById(R.id.text1); 
String text = "<font color=#cc0029>write any thing here</font> "+ 
       "<font color=#ffcc00>write any thing here 2</font>"; 
tv.setText(Html.fromHtml(text)); 
Смежные вопросы