着色textview

时间:2012-08-08 07:12:04

标签: android android-layout android-intent

我试图从textview的某个位置突出显示Textview的特定颜色。例如,在textview字符串中,我想突出显示从0到15位置的白色和从第16位到字符串结尾的红色。这是可能的?谁能举个例子?

6 个答案:

答案 0 :(得分:2)

使用Spannable Text你可以做到

Spannable WordtoSpan = new SpannableString("I know just how to whisper");        
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(WordtoSpan);

答案 1 :(得分:0)

TextView有一个属性textColor。一旦设置,它将为整个TextView.着色 我认为Android中没有内置的功能可以满足您的需求,但我们的想法是将您的长TextView从您需要的位置截断为几个小TextViews,并将每个{{1}}绘制成自己的颜色。

答案 2 :(得分:0)

 Get count of your string 

  int length = YourString.length();
then check with if condtion and set like this.

  TextView tt;
  int color = Integer.parseInt("bdbdbd", 16)+0xFF000000);
  tt.setTextColor(color);

答案 3 :(得分:0)

也许您可以使用WebView并将HTML代码放入...

String html = "<div><span style="background-color:red">SOME TEXT</span><span style="background-color:blue">SOME TEXT</span></div>"
wv.loadData(html, "text/html", Encoding.UTF_8.toString());

答案 4 :(得分:0)

我认为没有直接的方法在文本视图中设置不同的颜色。

您可以尝试将html格式的文本设置为文本视图以实现目标。 例如;

yourTextView.setText(Html.fromHtml(yourText));

在上面的代码中, yourText 是html格式的字符串,您可以根据应用程序逻辑创建html文本。

答案 5 :(得分:0)

您可以使用ForegroundColorSpanTextView例如 -

进行尝试
TextView tView = (TextView)findViewById(R.id.text);
tView.setText("Italic, highlighted, bold.", TextView.BufferType.SPANNABLE);
Spannable WordtoSpan = (Spannable) tView.getText();
WordtoSpan.setSpan(new ForegroundColorSpan(0xFFFFFF00), 0, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tView.setText(WordtoSpan);