2015-11-18 32 views
8

Uygulamamda basit textView denetleyicim var.
Bu metinde "123456789" metnini ayarlayın - metin rengi siyahtır.TextView'un bölümünün metin rengi nasıl değiştirilir?

Son üç basamağın (789) kırmızı metin rengi ile gösterilmesini istiyorum.

iki TextView'un kullanmadan bunu yapmak için herhangi bir basit bir yolu var mı
(bir siyah "123456" içerecektir ve ikinci kırmızı "789" içerecektir) kontrol eder

cevap

11

Bu deneyin: SpannableTextView

String text = "<font color='black'>123456</font><font color='red'>789</font>"; 
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE); 
+0

Html.fromHtml (metin) kaldırılmış ve Html.fromHtml (String, int) API düzeyinde 24 .. –

6

Sen bir olduğunu SpannableString kullanabilirsiniz TextView içinde stil dizeleri için mükemmel bir yol.

Demo

SO Post

4

kullanılarak

Set TextViewHTML bir şekilde kullanabilirsiniz

myTextView.setText(Html.fromHtml(stringB + "<font color=red>" + stringA + "</font>); 
Örnek:
0

Sen java sınıfında HTML afişleri kullanabilirsiniz ya

textElement.setText(Html.fromHtml("123456 <fontcolor='#FF0000'>789</font>")); 

Veya XML dosyasında CData biçimi kullanın: Örnek: Sana yardımcı umut

<string name="numbers"><![CDATA[123456<fontcolor="#FF0000">789</font>]]></string> 

;)

+1

edinilebilir I SO yarış olduğunu biliyoruz bir cevap gönderiyor .. ama cevabı göndermeden önce dikkatli olun. – Amy

+0

Üzgünüz, şimdi telefonumda çalışıyorum ve sadece şu anki HTML betiğini göstermeyi başaramıyorum: / –

1

bu yöntemi kullanabilirsiniz

public static final Spannable getColoredString(Context context, CharSequence text, int color) { 
     Spannable spannable = new SpannableString(text); 
     spannable.setSpan(new ForegroundColorSpan(color), 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return spannable; 
    } 
Daha sonra aramak ardından

kullanmaktır

textview.append(getColoredString(this, "Hi!", ContextCompact.getColor(this, R.color.red))); 
textview.append(getColoredString(this, "User", ContextCompact.getColor(this, R.color.green))); 
İlgili konular