0

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

4

6 回答 6

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);
于 2012-08-08T07:24:16.360 回答
0

TextView有一个属性textColor。一旦设置,它将为整个着色TextView. 我认为 Android 中没有内置的东西来实现你需要的东西,但一个想法是将你的 longTextView从你需要的位置截断成几个小TextViews的,并用自己的颜色绘制每个。

于 2012-08-08T07:18:21.637 回答
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);
于 2012-08-08T07:23:30.387 回答
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());
于 2012-08-08T07:24:08.610 回答
0

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

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

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

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

于 2012-08-08T07:24:45.440 回答
0

你可以试试这个ForegroundColorSpan例如TextView-

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);
于 2012-08-08T07:26:18.877 回答